summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/tools/certs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/tools/certs
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/tools/certs')
-rw-r--r--testing/web-platform/tests/tools/certs/README.md99
-rw-r--r--testing/web-platform/tests/tools/certs/cacert.key30
-rw-r--r--testing/web-platform/tests/tools/certs/cacert.pem125
-rw-r--r--testing/web-platform/tests/tools/certs/config.json17
-rw-r--r--testing/web-platform/tests/tools/certs/web-platform.test.key28
-rw-r--r--testing/web-platform/tests/tools/certs/web-platform.test.pem133
6 files changed, 432 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/certs/README.md b/testing/web-platform/tests/tools/certs/README.md
new file mode 100644
index 0000000000..95d9fbd2a8
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/README.md
@@ -0,0 +1,99 @@
+# WPT Test Certificates
+
+The web-platform-tests project maintains a set of SSL certificates to allow
+contributors to execute tests requiring HTTPS locally.
+
+## Trusting Root CA
+
+To prevent browser SSL warnings when running HTTPS tests locally, the
+web-platform-tests Root CA file `cacert.pem` in the `tools/certs/` directory
+must be added as a trusted certificate in your OS/browser.
+
+For Firefox, go to about:preferences and search for "certificates".
+
+For browsers that use the Certificate Authorities of the underlying OS, such as
+Chrome and Safari, you need to adjust the OS. For macOS, go to Keychain Access
+and add the certificate under **login**.
+
+**NOTE**: The CA should not be installed in any browser profile used
+outside of tests, since it may be used to generate fake
+certificates. For browsers that use the OS certificate store, tests
+should therefore not be run manually outside a dedicated OS instance
+(e.g. a VM). To avoid this problem when running tests in Chrome or
+Firefox, use `wpt run`, which disables certificate checks and therefore
+doesn't require the root CA to be trusted.
+
+## Regenerating certificates
+
+The easiest way to regenerate the pregenerated certificates is to the
+the command
+
+```
+wpt regen-certs
+```
+
+By default this will not generate new certificates unless the existing
+ones are about to expire. In cases where the certificates need to be
+updated anyway (e.g. because the server configuration changed), this
+can be overridden with `--force`.
+
+Generating the certificates requires OpenSSL to be installed.
+
+### Implementation Details
+
+If you wish to manually generate new certificates for any reason, it's
+possible to use OpenSSL when starting the server, or starting a test
+run, by providing the `--ssl-type=openssl` argument to the `wpt serve`
+or `wpt run` commands.
+
+If you installed OpenSSL in such a way that running `openssl` at a
+command line doesn't work, you also need to adjust the path to the
+OpenSSL binary. This can be done by adding a section to `config.json`
+like:
+
+```
+"ssl": {"openssl": {"binary": "/path/to/openssl"}}
+```
+
+### Windows-specific Instructions
+
+For Windows users, the easiest approach is likely to be using
+[WSL](https://docs.microsoft.com/en-us/windows/wsl/) and generate
+certificates in a Linux environment. However it is possible to install
+OpenSSL and generate the certificates without using WSL.
+
+[Shining Light](https://slproweb.com/products/Win32OpenSSL.html)
+provide a convenient installer that is known to work, but requires a
+little extra setup:
+
+Run the installer for Win32_OpenSSL_v1.1.0b (30MB). During installation,
+change the default location for where to Copy OpenSSL Dlls from the
+System directory to the /bin directory.
+
+After installation, ensure that the path to OpenSSL (typically,
+this will be `C:\OpenSSL-Win32\bin`) is in your `%Path%`
+[Environment Variable](http://www.computerhope.com/issues/ch000549.htm).
+If you forget to do this part, you will most likely see a 'File Not Found'
+error when you start wptserve.
+
+Finally, set the path value in the server configuration file to the
+default OpenSSL configuration file location. To do this, create a file
+called `config.json`. Then add the OpenSSL configuration below,
+ensuring that the key `ssl/openssl/base_conf_path` has a value that is
+the path to the OpenSSL config file (typically this will be
+`C:\\OpenSSL-Win32\\bin\\openssl.cfg`):
+
+```
+{
+ "ssl": {
+ "type": "openssl",
+ "encrypt_after_connect": false,
+ "openssl": {
+ "openssl_binary": "openssl",
+ "base_path: "_certs",
+ "force_regenerate": false,
+ "base_conf_path": "C:\\OpenSSL-Win32\\bin\\openssl.cfg"
+ },
+ },
+}
+```
diff --git a/testing/web-platform/tests/tools/certs/cacert.key b/testing/web-platform/tests/tools/certs/cacert.key
new file mode 100644
index 0000000000..39a1bf60a7
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/cacert.key
@@ -0,0 +1,30 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIjHFNizMFnigCAggA
+MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECMHkdsnaSMH7BIIEyBv07wsA9kBS
+Y64dr+vX2SHx1yY1HsI0u39L9OnIGcjSjqnXxNTRsHom4hf/18SCeo9hEDjpOWO2
+3arTVWLf4xRgGlS7rvbZuQlBXjFoVhm0hpDugy20vU8PZO+aWg4Hc5b2bMQgX0Jx
+4Q2P+5V+CK/PfBCtmLqVWw7WzbFMObOH1wDKFJsfPZqfaTjJVz/FvTqwXTkvmdgv
+5jF/jD9HzOu70C0Mxo/cqciWatBvs4bevQZgdB+kLygrefoypsQTseQfnwHrdHfZ
+XEtlWY8Stvrxc5a/+yRJaF8PF6wbhIgKN7IvZO08Ph2Ay8ssiCS0iX8eMLqSpVVG
+3+Hd5EyyGGXVTUaSITACRgzJRg79dn4ij2mVCAgItsuDZJcZ4USnrTLDEj6hjz3j
+v0Ii/y2s6F3tq1ExrzPey3W49Cwvq1pZKHDxmaLD6qPVFbwAV76+gB4tNUyx47s6
+Iv9+1k+M1d40IFZ5/xfMb07JCyFMtfHuW4dNcrW8YFasu4hXPzgkTlN6YMzcZrr+
+8YgqbSaKMbBTaRow3KCOSbh7LBGmSztUeimB1aU2yUcKL9L4hMcv+gITl6tENzio
+npzxSqj2IuSPMsaHyzGXhFZKqU9jP8zDF2UVfEvA46Ny20XEr9xiEkVqNZVsL8M3
+9PGCIMeF5L38jHfKbc8eV/rIeQIYEOti+e0vT0jUhFX85S0Y7pRciUbL1EkjLXRh
+lndsOyw8cJrjvjSdRPnfZrCBjr+5PtEOdMzIhEj88pceoH3dskCfovabhJICUTgp
+Y/BoHbOPdV35cJgNy38zY9BJTA3jCqvNcjomoNQ7iX5HFAw7FA4AoolpaVGoJGzd
+oDbXFzYJJq5/x+9whY5xnesv3zUvVjM8e62mt30nnB9EJg6EtivwIV2Kwvz0Gs5m
+IeCDkaVicmQ0IY2MJkTQm0cxq78PC9Acji4krJHDkeh0F2tv7t9OEv6D69rqgY7Q
+hqIQSMEVJFvihTKD1oGxzngeCRpsrjvnrVK+oNFD43QRYU3/OoO0EMKHkuOMlexK
+l28IOHvrYogw6nBX5bUGqx3N8XXvT5WHxxH4/3UALyJYVc/Niox5PRb9FbP7OIkf
++/8EEJQlh0jLqJvB6jRUTTusc4/S7bCLWqGuj9KeH4rYnfzDieNJc4w6n6fafas+
+hYTSqz08SJIz7Bj/lZvXkVZQWwlWpUq2PzTeflGazAkhmnBcisz7NkikwCkSHUem
+wykUwqiQDdeyZ8nOjOJYIrilYiAciNT/3M2OvKS3lX6lArkhlFPLrd5nSC/A34fC
+tA6g2LY81DK6EXLrvjV1J1Rk9/QnmpLLqXTR5bWtjFUL+OeYolju1dRjZMns1hws
+MLwympcF2QzCZRLPAom9QOpHEB1kcc5kpovJWFEKSx/vOKtbBb1SP+TdrwZmjuQe
+yRo67OEYZl8CU/0dRmdTBn8mDZ2JvUvGWE2cwt4Sr1OjrV3THvR53NubPW9cnl86
+fvxA9Z8i9woxm7145iHkQI9A2UDvwXJBYygObmf4w73kFog0uPZszEyjWxhwRHlI
+tALvx2eo8onz4w+Pv0WhpeAyPkUP9xNH53LzMKwhBheLIUmgXwuKksis+HDeKLSc
+UmIQjHnnIJBz35ME536TBQ==
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/testing/web-platform/tests/tools/certs/cacert.pem b/testing/web-platform/tests/tools/certs/cacert.pem
new file mode 100644
index 0000000000..79bf67fe51
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/cacert.pem
@@ -0,0 +1,125 @@
+-----BEGIN CERTIFICATE-----
+MIIW5zCCFc+gAwIBAgIDBwluMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMzA1MTIwMDU3MzFaFw0yNDA1MTEwMDU3MzFa
+MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALGQERXCyZ4A9Ptm/ykUNcakBY1e02WQWcGjIQBEI15X
+HdGBoloXg+Nz1Q9yPNtJX4Iy+RUaOEQ+OROMeIytk3pLreNLT6U7b7aaLMYGNltO
+ldfwecpOTJpowt6npqXfGXfYZg87GQnft15eowH7RGC7MRS/6jtatqfHq3A3gq27
+u/R67V9YnnMhPd0JkFQ55Rwfaq/ekNlpH8zEHaz4Nm78ztUXEHbjemsMq78dt1QI
+hWFCxBUsaL7SQsSV9mXdhxTjsfMARWQKjAKVGudaBbCCQ53R+oTkItykW1n6oDAr
+AjBGz9j8LlxEAvpJKwEQegoPKLkKWiuYULJhMxtoZU0CAwEAAaOCFC4wghQqMAwG
+A1UdEwQFMAMBAf8wHQYDVR0OBBYEFPESRpt+4PjsmOP+jnFDhkkg+KTlMEcGA1Ud
+IwRAMD6AFPESRpt+4PjsmOP+jnFDhkkg+KTloSGkHzAdMRswGQYDVQQDDBJ3ZWIt
+cGxhdGZvcm0tdGVzdHOCAwcJbjALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ
++KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0Zm9ybS50
+ZXN0MBeCFXd3dy53ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9y
+bS50ZXN0MBiCFnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdDAbghl3d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3
+dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9y
+bS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3
+LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0
+MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3Mi53ZWIt
+cGxhdGZvcm0udGVzdDAdght3d3cxLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwHYIb
+d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3MS53ZWItcGxh
+dGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh53
+d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzEubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0MCCCHnd3dzIud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
+dDAggh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIeeG4tLWx2ZS02
+bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3QwIYIfd3d3MS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93
+d3cyLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3MS5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLnd3dy53ZWItcGxhdGZv
+cm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCSC
+Ind3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02
+bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRm
+b3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qw
+KIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKIImd3d3
+LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3Mi54bi0t
+bHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzEueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid4bi0tbHZlLTZsYWQud3d3Mi5u
+b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzEubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w
+bGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBs
+YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1w
+bGF0Zm9ybS50ZXN0MC+CLXd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWIt
+cGxhdGZvcm0udGVzdDAvgi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS53
+ZWItcGxhdGZvcm0udGVzdDAwgi53d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
+LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3
+dzIud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
+djI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF3d3cueG4tLW44ajZkczUzbHd3
+a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXhuLS1uOGo2ZHM1M2x3
+d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3MS54bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3
+Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
+NIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3QwNIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3QwOII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2
+MjhhLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
+LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbjhqNmRzNTNs
+d3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC
+OnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk
+czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44ajZkczUz
+bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0
+Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiC
+EXdlYi1wbGF0Zm9ybS50ZXN0ghVub3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53
+ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53
+ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3
+Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRl
+c3SCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxh
+dGZvcm0udGVzdIIad3d3Mi53d3cud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3
+LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIb
+d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cxLnd3dzEud2ViLXBsYXRm
+b3JtLnRlc3SCG3d3dzIud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cx
+LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIed3d3Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCHnd3dzIud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIed3d3MS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5u
+b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
+dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9y
+bS50ZXN0giN3d3cxLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3
+Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
+d3cxLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3SCJ3d3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
+d3d3MS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZl
+LTZsYWQud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
+d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
+OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53
+ZWItcGxhdGZvcm0udGVzdIItd3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndl
+Yi1wbGF0Zm9ybS50ZXN0gi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
+LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
+LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cu
+bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2
+MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyd3d3Mi54bi0tbjhqNmRzNTNsd3dr
+cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNs
+d3drcnFodjI4YS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02
+bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
+bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
+LnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr
+cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
+gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
+YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHmWNJCj
+6J8HohdpZBK9UsU8Fs615djgKGi0s474l+2A2Ul2WxONz7XzuIRMc5qt3gbiXh7w
+ypk2BhAayyw0viUDh1AVenvUC/GD6HAW7zz7f9p02/rc4K6Jyt/5Oo8PNFzesWSs
+Mw8eTg4Y6AupFp9fKRXNkEQ7gDbqWP4UYKj1YWESRH85OsaAuyBTOnl7CdCYJHtI
+Exz3dd72SK1lq86b6IoGiW2jEY1/1GMK10Gid349qYapkYizYyaRZO16O++FXWC+
+dWH3p8FO4jgixV8aTwfgrLmx0RPNrWk6u11ePE1K2n4naruqJAONugmZG3LWGLHO
+lwo3HjEOzXXqD2Y=
+-----END CERTIFICATE-----
diff --git a/testing/web-platform/tests/tools/certs/config.json b/testing/web-platform/tests/tools/certs/config.json
new file mode 100644
index 0000000000..df93c6fc34
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/config.json
@@ -0,0 +1,17 @@
+{
+ "ports": {
+ "http": [],
+ "https": [],
+ "ws": [],
+ "wss": []
+ },
+ "check_subdomains": false,
+ "ssl": {
+ "type": "openssl",
+ "openssl": {
+ "duration": 365,
+ "force_regenerate": true,
+ "base_path": "tools/certs"
+ }
+ }
+}
diff --git a/testing/web-platform/tests/tools/certs/web-platform.test.key b/testing/web-platform/tests/tools/certs/web-platform.test.key
new file mode 100644
index 0000000000..f1eb177cad
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/web-platform.test.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC2skGFCv8b3v+p
+KSbn/2RpcWzUab1/gbRgydfidP762Ltsj5L+tuaHtdzvqt7a1ySc3fwDr49qJtxc
+WZrFKl7xecKA847isx1WoPm+fmAwaLQPqQlH+hgTrAfrofN22FPewaKz+XCeGIIR
+bnipZssv0Td3o1C5sYVmhdsoKRWnF90RNXUCtJ1GcrtnDxuaYY/l++n3Hx37nUQt
+iw2IC7fqfCPMsFOGiPefskVuNoUDXyBhTd0rZWEXqU/qrxhljkRFUVq8ILWw6Ie1
+Bgst+HUW8Sp0Dir2VRcpYoIMWF4NY7TyeC39xWz4FGoCGiM3NdWNCDyfOqzDKFeu
+a1Dr3AjhAgMBAAECggEBAKxK7Uk3tqAlLHvuSDev/ZUHF7g2RDR0MJS6pXJ2HWSZ
+ch+OQvUdrcg8NTB8txAwpuGc4ybisOBN57Db+/6G1+TojAqqJo0al8dzpjME4Vel
+1nGSWyNa8svSh+Gq6HyixG2ltPf/fDpMKJWh1f8D5wigSKv2A5IrnP+zqpt0K2xY
+ltDiuMCjLO86TMeQDBA/KDL2fw4VObDjuA7H1IBRWJvC/n1Js/Am/y+FKOUA/aMW
+x4lgDhx2ISoti9uS6EfKxMb5Tj4FEXVDgmqETW7k4mhZN/LynBKeJ+Cl/2VpyqnO
+1+EFVqcHnaZSttqoUQlSiR2E37Qry9PV4tm4vUkMsAECgYEA6Y/l/52dHpe8A4AE
+t3lT0RxHypJtN36L30f7xPXSYGu8q/2QpPHESgSEsEa9OxAgHHPjj/F0SMu+BXBo
+MeO57gbTEidqRbS1zOdnzWtFNECwZV0T80rXt8awuGH+hbzDUcjHW50s9Wh1jaMW
+5xeuEKU5YuxPFx7qu8acG5jWCmECgYEAyD9kNBkUxWotofqpiOWfXJZjjiuaj48E
+l1t8DxuXhjRlPIB8Z7k3+rEgGkeBOw4UsX3SUbbVCLRe4Qye/G6sFg0xtEgJpkHW
+uCTVohrzGhQmPA+7Cu0pQOvmlh60bFh1ATU1ePxrMyWZUFn2d1XdD4ZERdCUWC/2
+OM7wIzyfjoECgYEA3vWxV/y8GpI6txSkbAl0S/C1T9nMTOeO2s06uOD5vXXbnEvo
+oqzw9r+tcyF0T0erf73ZhHW4zi1A7qxJqyZ7PZBiObhKqNRDoKFe5Cf83k7KlVjv
+TJcrqpIP7VQOxthVlGMYfIpkerkHTvhbSqu+TMGNMLPpJGctKagFKgsSeMECgYAz
+OBuuQ7gPYsA3TUEt9eXULddbFwYasC8xc8IAr0MLnb1DQ24Orc6GveWDM0T30Ps0
+BwXTxtsotdIK6EqGMNyta0SKY16seuyr/yfxpckGo57AABoMimrh4zUAsuvdRqbu
+3yhFQPM+iuBzL/+duIWpoeM2pEo9YE8vaqb7rFb3gQKBgQCYRw+PH0k1Lp0Z2Z4H
+2Nb2C25GoNHc5QA4au2ST3mKhlaqLYZqrg9yR58jR2IgD55xBQrmhxm6CyL/6Owa
+26G2LRzj55FHIPVssnfgtVGUEEmiGxdpL6Q7nEue+2kvoAsdYql1JPavTCuTJCmj
+pXFkinopUTpVFlVtXF5asrvU1w==
+-----END PRIVATE KEY-----
diff --git a/testing/web-platform/tests/tools/certs/web-platform.test.pem b/testing/web-platform/tests/tools/certs/web-platform.test.pem
new file mode 100644
index 0000000000..7063a254dd
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/web-platform.test.pem
@@ -0,0 +1,133 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 461167 (0x7096f)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: CN=web-platform-tests
+ Validity
+ Not Before: May 12 00:57:31 2023 GMT
+ Not After : May 11 00:57:31 2024 GMT
+ Subject: CN=web-platform.test
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public-Key: (2048 bit)
+ Modulus:
+ 00:b6:b2:41:85:0a:ff:1b:de:ff:a9:29:26:e7:ff:
+ 64:69:71:6c:d4:69:bd:7f:81:b4:60:c9:d7:e2:74:
+ fe:fa:d8:bb:6c:8f:92:fe:b6:e6:87:b5:dc:ef:aa:
+ de:da:d7:24:9c:dd:fc:03:af:8f:6a:26:dc:5c:59:
+ 9a:c5:2a:5e:f1:79:c2:80:f3:8e:e2:b3:1d:56:a0:
+ f9:be:7e:60:30:68:b4:0f:a9:09:47:fa:18:13:ac:
+ 07:eb:a1:f3:76:d8:53:de:c1:a2:b3:f9:70:9e:18:
+ 82:11:6e:78:a9:66:cb:2f:d1:37:77:a3:50:b9:b1:
+ 85:66:85:db:28:29:15:a7:17:dd:11:35:75:02:b4:
+ 9d:46:72:bb:67:0f:1b:9a:61:8f:e5:fb:e9:f7:1f:
+ 1d:fb:9d:44:2d:8b:0d:88:0b:b7:ea:7c:23:cc:b0:
+ 53:86:88:f7:9f:b2:45:6e:36:85:03:5f:20:61:4d:
+ dd:2b:65:61:17:a9:4f:ea:af:18:65:8e:44:45:51:
+ 5a:bc:20:b5:b0:e8:87:b5:06:0b:2d:f8:75:16:f1:
+ 2a:74:0e:2a:f6:55:17:29:62:82:0c:58:5e:0d:63:
+ b4:f2:78:2d:fd:c5:6c:f8:14:6a:02:1a:23:37:35:
+ d5:8d:08:3c:9f:3a:ac:c3:28:57:ae:6b:50:eb:dc:
+ 08:e1
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ X509v3 Subject Key Identifier:
+ 55:E3:89:23:FF:B4:2F:9B:59:D4:B8:B7:E4:0D:C2:9A:61:86:2D:A6
+ X509v3 Authority Key Identifier:
+ keyid:F1:12:46:9B:7E:E0:F8:EC:98:E3:FE:8E:71:43:86:49:20:F8:A4:E5
+
+ X509v3 Key Usage:
+ Digital Signature, Non Repudiation, Key Encipherment
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication
+ X509v3 Subject Alternative Name:
+ DNS:web-platform.test, DNS:not-web-platform.test, DNS:www.web-platform.test, DNS:www1.web-platform.test, DNS:www2.web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:www.www2.web-platform.test, DNS:www.www1.web-platform.test, DNS:www2.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:www1.www.web-platform.test, DNS:www1.not-web-platform.test, DNS:www1.www2.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www1.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
+ Signature Algorithm: sha256WithRSAEncryption
+ a7:2c:41:42:13:d2:c0:0a:e5:f4:84:9e:b9:47:50:ed:b4:a8:
+ 09:41:c8:8c:3b:cc:a9:03:9f:6d:f8:7b:d2:e5:d9:87:55:a1:
+ 7a:00:9b:2c:5a:3a:c7:46:4d:02:9b:16:10:02:4c:0d:a5:68:
+ e2:79:07:21:a4:8e:42:51:ae:80:ab:f8:f8:34:5f:02:0b:72:
+ 66:18:3c:e3:da:98:f9:4c:70:19:5f:61:c2:49:9b:86:46:8c:
+ 5f:92:b4:3e:49:ef:d4:a7:f7:7c:0b:fc:b0:fb:7d:ec:73:5d:
+ a9:5a:58:47:b8:11:60:1b:43:2c:47:da:15:9e:6c:db:35:cc:
+ d8:f4:f4:99:11:94:e6:8e:bf:06:66:81:28:99:25:5e:e6:01:
+ 2b:16:c0:50:43:8a:12:04:c4:5d:6b:fa:8b:dd:ca:98:bc:7a:
+ 85:3a:c2:10:74:f2:e9:e6:b1:a7:bd:a7:d5:99:33:3b:15:e7:
+ 24:e4:d7:d8:9b:9d:84:60:e8:fd:17:4a:63:01:33:ad:30:e6:
+ ec:b0:aa:7b:31:f2:83:3c:6e:d9:3b:7c:02:e6:64:a3:c2:ee:
+ 88:1c:4b:43:bc:de:0b:94:2a:cb:7e:1b:ba:10:01:01:e0:a7:
+ d2:19:fd:1b:fe:43:df:0e:7b:e4:2f:25:12:99:b4:d5:c7:63:
+ fa:d1:de:cf
+-----BEGIN CERTIFICATE-----
+MIIMsjCCC5qgAwIBAgIDBwlvMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMzA1MTIwMDU3MzFaFw0yNDA1MTEwMDU3MzFa
+MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtrJBhQr/G97/qSkm5/9kaXFs1Gm9f4G0YMnX4nT++ti7
+bI+S/rbmh7Xc76re2tcknN38A6+PaibcXFmaxSpe8XnCgPOO4rMdVqD5vn5gMGi0
+D6kJR/oYE6wH66HzdthT3sGis/lwnhiCEW54qWbLL9E3d6NQubGFZoXbKCkVpxfd
+ETV1ArSdRnK7Zw8bmmGP5fvp9x8d+51ELYsNiAu36nwjzLBThoj3n7JFbjaFA18g
+YU3dK2VhF6lP6q8YZY5ERVFavCC1sOiHtQYLLfh1FvEqdA4q9lUXKWKCDFheDWO0
+8ngt/cVs+BRqAhojNzXVjQg8nzqswyhXrmtQ69wI4QIDAQABo4IJ+jCCCfYwCQYD
+VR0TBAIwADAdBgNVHQ4EFgQUVeOJI/+0L5tZ1Li35A3CmmGGLaYwHwYDVR0jBBgw
+FoAU8RJGm37g+OyY4/6OcUOGSSD4pOUwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
+CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghVu
+b3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53ZWItcGxhdGZvcm0udGVzdIIWd3d3
+MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIZd3d3
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
+dIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCGnd3dy53d3cxLndlYi1wbGF0
+Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Mi53d3cu
+d2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghp3
+d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cyLndlYi1wbGF0Zm9y
+bS50ZXN0ght3d3cxLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzIud3d3Mi53
+ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0gh13
+d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzIubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnd3
+dzIud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3MS53d3cubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCH3d3
+dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+H3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53
+d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3hu
+LS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0giN3d3cxLnhuLS1sdmUt
+NmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBs
+YXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0
+giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIImd3d3Lnhu
+LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzIueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIInd3d3MS54bi0tbHZlLTZsYWQubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZlLTZsYWQud3d3Mi5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0u
+dGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SC
+K3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXhu
+LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWItcGxhdGZvcm0udGVzdIItd3d3
+LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gi14bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
+OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
+OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s
+dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4
+bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0u
+dGVzdIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cyLm5vdC13
+ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbjhqNmRzNTNsd3drcnFodjI4
+YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3
+d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu
+LS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3
+d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFo
+djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3QwDQYJKoZIhvcNAQELBQADggEBAKcsQUIT0sAK5fSEnrlHUO20qAlByIw7zKkD
+n234e9Ll2YdVoXoAmyxaOsdGTQKbFhACTA2laOJ5ByGkjkJRroCr+Pg0XwILcmYY
+POPamPlMcBlfYcJJm4ZGjF+StD5J79Sn93wL/LD7fexzXalaWEe4EWAbQyxH2hWe
+bNs1zNj09JkRlOaOvwZmgSiZJV7mASsWwFBDihIExF1r+ovdypi8eoU6whB08unm
+sae9p9WZMzsV5yTk19ibnYRg6P0XSmMBM60w5uywqnsx8oM8btk7fALmZKPC7ogc
+S0O83guUKst+G7oQAQHgp9IZ/Rv+Q98Oe+QvJRKZtNXHY/rR3s8=
+-----END CERTIFICATE-----