summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/tools/certs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/tools/certs
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
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..28424d9211
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/cacert.key
@@ -0,0 +1,30 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIlEW03rkHr0YCAggA
+MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECMnvBPzVShbWBIIEyBthE6OWkj8F
+nK4JOaxJeH3h0R6ocmQ3u2H4kPWu34zpGCMdXYJ3N1w2JotViAQQWrVpy0Y4ixr1
+FE0Y1GX/4YYBm+/PMmxPZTKfVIHIHvTCDryOUIhpLp/3tio/NIhvUNYLDHug5wyP
+HCgt4HDNEEV9mlB35delYcHHDl/DDTr5LdtAX1Svxets0cTEZ3XqTVmfN1Y2OBAG
+gPw3fyDqgKD/hq5y2CjonY6vxyMSmTrm3SJhKTwtelKeRLmfLDBoHXHLaoamd8nd
+hGvIGeINwV1Y6z2c+NNJ9ZwKMD2k+Qmt6CfGJKqw+T852ESFyPSqlwQfrlV8Yy69
+gA/POlxF7BHI970QMvZBuMBQgLtbNorvJTEqXBqbM7jlLZxVfZE76X7hkvWT298y
+GAHWI/Y/Qct+PpaBr0yxSN0NHZE0be13gOqSUivshqwf73r6CFnOQbmx3003OqR1
+nltppjrAd+dyJMxek0ouubMPDsG6CgBUgEKUjuAE6zhKwq7m4pHjsWasbT+3Eoly
+o895bTdFbI/t62Xx4NOPrir7KOi1bo6X8LPrjKhJKsYuFdrT8+EgZhUUy6fjdKpx
+lKmvHX8nIoKrM+rdfxNLHMOTHpEsxLiE+WcCcgc9xjPm7d0KTKpacemlKSOL77NN
+Fc0oTP0kANFDz4SFgkUhflP2t8jbyoors1uH4KrkNo2vAxD9DQCdlqgC80zv9+Tq
+ynIHHAbNKwX8gsnKSvKcyuTrw4fA/0r1+1D25kIuameQ0i6fUAVPeVBsQN+2StkC
+N4h3yGpLeIA0UAS+aIjR1h1e/NWvPWvPAhEbWsyuwlxaRSGsTKKLD5WkPw5nQrir
+W1LqfrkEQgo1g+CDl70YU1sPsI3jRBk0kGn0uDTo6SCYPOPmClWESchB/1Plk0e0
+Yr90/258niPcLsNV2lSdnHky0pqGmColPMqCWQvl0fjWpy9WSrFLAFAmo4Pqsdt7
+fZh3vNTpD/EGJQdYhQfyKmSnR0124jAMmu6wQf1jf7cZO7JV7lz2YIdS1V1zuG0X
+CS83EoJlI+OgDsbEtGFkC8sSYtyT+bzc4WLcByWuvZ0HBB0ATfLyzQIEQkRzIVTT
+C3eYgv+LyZi/l7TBLEBNOYH/2jPRghDhwA2F2xtc/81O3C078OP2F+rj8JUk7rX2
+Yaqvpg9bvHvkCu2F2xSG8IFVVzvtR1j0w0tJtjoYSc26R4bJtf1upfuIVyoRogwh
+qvCZfWpIq6wCShdgkHXFCWTlThPCEnATdPBRoCtQ/OoonZtJMJsnMoA3wEqu+Qf7
+DMwffby/ylccNdRtjN8TsUkI2uVeuJa+g4l4uT3h2GSXxNmJuy3+pKm4CllaQp+k
+rAQBigpnNj7Jt1n5OZwiKlwx+yQykhuFt3Y9SiXxlMQWwEYBDB/sziaRFQahQQti
+KveWzLr+Z6kIIvYd8Ay9TOAsdUN2GOeVQXHfaurb+1g3ZJBWxrQNlRF4irdDmsPp
+qNwKVGnMOfkis2mGSmSyBMdbwJYC64V0sTHRC9t/rn33eK0zI9cL5FY9ay1cokLX
+nkZpZKjguQ2yzzq34udLiCQGElcQnCUAMgTe7Vdb81ziPlmR5soTcshirM4+vaN4
+uaG/s+sespCfuB15hdLpAg==
+-----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..4905177a33
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/cacert.pem
@@ -0,0 +1,125 @@
+-----BEGIN CERTIFICATE-----
+MIIW5zCCFc+gAwIBAgIDCcbkMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMzA5MTIwMDQ3MTlaFw0yNDA5MTEwMDQ3MTla
+MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAOKsSaJFosHayLqBysXW9/V44WPagXl1guuUrD0eJJy6
+FnzpUyn3MKB6epxRyMcQuRCct4GC8HBaUpYM9D5uG2aIYdr47P6C5lJJ90503yjy
+OciIPnljxLcoMOpG6HqEiMlBBUsNZSOXx4MgrPrrG/prN9mJIoQYy6iJn4xfh4OE
+cx+O1ZmbFgWsMyrEQ+g98J/bz4bM66hHRKlEu7mJNYoAPsLvAPQVSJGwSlBfLm4p
+LE3Lg70wsXHuY/+xNZ7dbRTnvh3dOoqcbiXzMvAILJTHLSbCQB+gXxGBSyWxWrkO
+bIXxr68K5GDbSNI0GIyN/fRfUGKCOKRclaqsfBbym7kCAwEAAaOCFC4wghQqMAwG
+A1UdEwQFMAMBAf8wHQYDVR0OBBYEFC/OVhUnYgYooLOcpHVY9g2HWSDYMEcGA1Ud
+IwRAMD6AFC/OVhUnYgYooLOcpHVY9g2HWSDYoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
+cGxhdGZvcm0tdGVzdHOCAwnG5DALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ
++KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVd3d3LndlYi1wbGF0Zm9ybS50
+ZXN0MBeCFW5vdC13ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9y
+bS50ZXN0MBiCFnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdDAbghl3d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3
+dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3LndlYi1wbGF0Zm9y
+bS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0
+MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3Mi53ZWIt
+cGxhdGZvcm0udGVzdDAdght3d3cxLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwHYIb
+d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3MS53ZWItcGxh
+dGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh53
+d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzEubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0MCCCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVz
+dDAggh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Mi53d3cu
+bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3QwIYIfd3d3Mi53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93
+d3cyLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3MS5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3QwJIIid3d3LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZv
+cm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQud3d3LndlYi1wbGF0Zm9ybS50ZXN0MCSC
+InhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0t
+bHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzIu
+d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRm
+b3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qw
+KIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKIImd3d3
+LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3Mi54bi0t
+bHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzEueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid4bi0tbHZlLTZsYWQud3d3MS5u
+b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzIubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w
+bGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBs
+YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1w
+bGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWIt
+cGxhdGZvcm0udGVzdDAvgi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi53
+ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cx
+LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYy
+OGEud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
+djI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF4bi0tbjhqNmRzNTNsd3drcnFo
+djI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXd3dy54bi0tbjhqNmRz
+NTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3MS54bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4t
+LW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
+NIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3QwNIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3QwOII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02
+bGFkLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1sdmUtNmxhZC54bi0tbjhqNmRz
+NTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbHZlLTZsYWQu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC
+OnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk
+czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44ajZkczUz
+bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0
+Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiC
+EXdlYi1wbGF0Zm9ybS50ZXN0ghV3d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13
+ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53
+ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3
+Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRl
+c3SCGnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3MS53ZWItcGxh
+dGZvcm0udGVzdIIad3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3
+LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIb
+d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cxLnd3dzEud2ViLXBsYXRm
+b3JtLnRlc3SCG3d3dzEud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cx
+LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIed3d3MS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIeeG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5u
+b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
+dmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCI3d3dzIueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9y
+bS50ZXN0giN4bi0tbHZlLTZsYWQud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIjd3d3
+MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
+d3cxLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3SCJ3d3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
+d3d3MS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZl
+LTZsYWQud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
+d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
+OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
+d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53
+ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0gi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
+LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
+LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
+LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
+bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2
+MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYy
+OGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cyLnhuLS1uOGo2
+ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZk
+czUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
+bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3Jt
+LnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1s
+dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
+cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
+gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
+YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBABgmlNYL
+FvectFPZIiLdS2t3K73eIDfyK2Ay1gILuzSggrB1GNL6X4AmWeoX962KV/lnKPTt
+2SfzV4ej3A4tJNql+vFUHtYV1GfXbDDjRLYff1b/GiF3QbJy7bZmzt9gxTE9/Rf1
+uj7M9VbnfQ9svyr7j5O5C9SQ811ejTGeGQ8oD1i3ymRnOm8hnQf0PnHcsJFfvaiV
+R5bqtARM7ONxSoCI1oJvq/iXUgEUiwDWfGZCJslBY9M0AwEX9XL9tRwGjwzUzDp3
+U3kyG0pCEcBYBz3RxUlKHft6MWBGEs8rDZiEJtLj4CUyfcWOn3YPdA7uZ9UgZ6D1
+XHPWabPan/e6Hzo=
+-----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..16c60a9d5b
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/web-platform.test.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC1nEdkHngqBiPE
+jhia+mVcB77pqyB4XuSIcwRayIAnbTX8WO1AwA04wXxfyJbzkTgms1tw9Cjtg4Nx
+20QDOfLfFuQL/yrknlY/Pc93XWvC5OlbXR9b1IlWe2oQlqQtn9N6yf1mc8TlM9V9
+B7kzCjG5HBMUQHRWnBptRkJ0kn8OrfjCwo+6+2VpWg+qNuOWih/VdJjwQsV3ADwu
+R6AtIg/+84qF8CJl11GO0bmZjObcYjKhBOVRXPzMpBQ0tzUa4uR9uMYIJzeVo1tB
+8tNon5sEhbxfnxHJ4hpVfc1iNYetrlX+P4i0aIKmLVdqVwG48CKEQr/9vFLOAxX+
+tDVSNUzNAgMBAAECggEBAI9YGsFbi10gG3s47RLmMLrDIl0tRSO9QoSww+8j8oMs
+IEBdsGY7MDRsA89WdE8rgDaLutEc5nESLN3hQ32Ib7rGRplxflmU4F5qWybMBhJ+
+u/HxPp8s0noAT2dof43DaRix9eC33+FJWGinf/ZZRYXmMuj5NtplvDYkDrAUMVVT
+h2ndzlfv5u9fGZnXT/7qke03OZW3lGnI6BDw8dKgr/Lt0yF2oHUt3wbg29lHOh2N
+i/MUIxhYM/RnjZYHveKph3fapVN63ZVBi6xCZzLEPTFrZUtMZ0HpyNxNrCE6ZQrl
+dH8qH72ksvtTpUnIcoehAbjuaedBtzGEcaeXUGFoLcECgYEA2u6onDUmsiv/prZX
+sHUtHaTJf09M0RASaSIKZvVVl03wsL2uHqF8PU2QaOh1G85u+D+vNlBqA4lKAxsD
+W7Cv4qOJxGlVYeYYNhuPMXaWbnGFeSd8ijP44WUSDsCdmx99mwV1rMYXirypCgiq
+5Cg8TYQ/Ze2A5Z5hFltpuWVNzuMCgYEA1Fv0TGrWhuaJy+M9JErNmmvaLjtIknIH
+J2iaA0bAgINBDxODVN8gx4CufuJ8+QlRziIlWeYhE6Xg077GCsYYMW9GiaqyPDpG
+9q4efQU4hqgt/1Nx29hXO+sBCvgwFWNM1+4bBwwlfl2RIH9MUmFVUeb9jrE71IEi
+Vtai+MEnFI8CgYEAvwWJfHIrxz34nB9xN3el272SSlCIt8kMJ0saRGc/PPs2TR/T
+Msq3uk1Y+RAKTi66SERYvk0/ksJRH5CMR45MiLUkWYmGhBrdeShmskPEUa0fRmyb
+j4J1X0Rukwyg915sm7wRxqQ4mkauPyD86oHoy8HeBzNJSg/8qiMshiTL1P0CgYEA
+iMn+sGa1b0n7AvmKPeFtVQYaEWOgmKyYzRrE8k1V3LIvay2vkDD2JWxPem4cADKv
+ni9Cjgj9z3EvRFYDrZbyqI08C5uHmeIUKfv4qaF+Ssb0ch5nHizZ7D+xeUZreqtv
+KTw37q81S5Or0xoMqJgH5Gz9cTfbCURxQSya589LhCMCgYEAr5rWX0j32ZKMldtA
+yKWuNrEiX66Ab09hquP8Ew6atKDxdgp6vxNcnKKGFkMidg5gv8NAht08EWh/Yyuf
+VcigxrpqNkLJaqjntXCeurGUkcsLr8eZc0Cp+LJYsiOxg/TEnR0TlGraM4GftwP9
+Na3VJtUm8mO3hM+O5p7sTwNOmuI=
+-----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..5140687f3c
--- /dev/null
+++ b/testing/web-platform/tests/tools/certs/web-platform.test.pem
@@ -0,0 +1,133 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 640741 (0x9c6e5)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: CN=web-platform-tests
+ Validity
+ Not Before: Sep 12 00:47:19 2023 GMT
+ Not After : Sep 11 00:47:19 2024 GMT
+ Subject: CN=web-platform.test
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public-Key: (2048 bit)
+ Modulus:
+ 00:b5:9c:47:64:1e:78:2a:06:23:c4:8e:18:9a:fa:
+ 65:5c:07:be:e9:ab:20:78:5e:e4:88:73:04:5a:c8:
+ 80:27:6d:35:fc:58:ed:40:c0:0d:38:c1:7c:5f:c8:
+ 96:f3:91:38:26:b3:5b:70:f4:28:ed:83:83:71:db:
+ 44:03:39:f2:df:16:e4:0b:ff:2a:e4:9e:56:3f:3d:
+ cf:77:5d:6b:c2:e4:e9:5b:5d:1f:5b:d4:89:56:7b:
+ 6a:10:96:a4:2d:9f:d3:7a:c9:fd:66:73:c4:e5:33:
+ d5:7d:07:b9:33:0a:31:b9:1c:13:14:40:74:56:9c:
+ 1a:6d:46:42:74:92:7f:0e:ad:f8:c2:c2:8f:ba:fb:
+ 65:69:5a:0f:aa:36:e3:96:8a:1f:d5:74:98:f0:42:
+ c5:77:00:3c:2e:47:a0:2d:22:0f:fe:f3:8a:85:f0:
+ 22:65:d7:51:8e:d1:b9:99:8c:e6:dc:62:32:a1:04:
+ e5:51:5c:fc:cc:a4:14:34:b7:35:1a:e2:e4:7d:b8:
+ c6:08:27:37:95:a3:5b:41:f2:d3:68:9f:9b:04:85:
+ bc:5f:9f:11:c9:e2:1a:55:7d:cd:62:35:87:ad:ae:
+ 55:fe:3f:88:b4:68:82:a6:2d:57:6a:57:01:b8:f0:
+ 22:84:42:bf:fd:bc:52:ce:03:15:fe:b4:35:52:35:
+ 4c:cd
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ X509v3 Subject Key Identifier:
+ 8C:6B:B4:12:01:78:DC:2B:78:9F:58:EC:38:00:49:12:7A:CB:FE:AA
+ X509v3 Authority Key Identifier:
+ keyid:2F:CE:56:15:27:62:06:28:A0:B3:9C:A4:75:58:F6:0D:87:59:20:D8
+
+ 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:www.web-platform.test, DNS:not-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:www2.www.web-platform.test, DNS:www.www1.web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.www.web-platform.test, DNS:www1.not-web-platform.test, DNS:www2.www2.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www1.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www2.www.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:www1.www1.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:www1.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.www1.not-web-platform.test, DNS:xn--lve-6lad.www2.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:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
+ Signature Algorithm: sha256WithRSAEncryption
+ 89:74:5b:31:67:f5:72:96:7a:32:f5:b4:9e:d3:09:39:a5:a6:
+ 8b:a6:51:8c:42:83:77:5a:b3:9f:92:a3:61:80:d8:3a:3c:98:
+ 96:35:eb:bf:db:74:4e:a4:35:f1:af:cd:e0:19:ee:b1:b5:ea:
+ ff:ef:96:56:7f:68:70:1a:74:24:e7:66:1a:52:f2:66:48:6a:
+ 15:f4:c1:a4:5e:09:ea:41:17:fc:71:1b:a6:63:2d:f6:ee:89:
+ 83:96:0c:e4:61:e0:6e:c2:cd:cb:77:c2:e5:68:5d:c3:37:d2:
+ 77:18:c9:1c:ee:95:3c:41:17:1e:bd:02:d9:85:e3:d4:18:d3:
+ 47:0b:98:ed:c5:2e:ad:a9:24:16:5e:b4:42:66:c1:78:ce:1f:
+ 01:39:d3:75:cd:78:cc:da:a0:58:e2:df:b7:38:8a:c2:66:46:
+ 1c:9b:cb:15:10:b4:0c:b6:ef:c7:c3:18:bd:84:ec:6b:ef:9a:
+ 86:35:96:f1:ba:53:ce:96:bf:12:bf:e1:ac:13:49:8c:87:0b:
+ c6:b8:b0:84:f1:ea:0c:4e:04:3f:51:4a:56:88:34:7d:f9:9b:
+ e3:dc:4b:fe:57:b3:ed:3d:4e:06:bc:0f:e7:bf:bf:bd:c6:43:
+ dc:47:aa:a0:34:df:7b:66:84:c2:32:54:16:f7:56:ee:68:7c:
+ cd:44:99:d9
+-----BEGIN CERTIFICATE-----
+MIIMsjCCC5qgAwIBAgIDCcblMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMzA5MTIwMDQ3MTlaFw0yNDA5MTEwMDQ3MTla
+MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtZxHZB54KgYjxI4YmvplXAe+6asgeF7kiHMEWsiAJ201
+/FjtQMANOMF8X8iW85E4JrNbcPQo7YODcdtEAzny3xbkC/8q5J5WPz3Pd11rwuTp
+W10fW9SJVntqEJakLZ/Tesn9ZnPE5TPVfQe5MwoxuRwTFEB0VpwabUZCdJJ/Dq34
+wsKPuvtlaVoPqjbjloof1XSY8ELFdwA8LkegLSIP/vOKhfAiZddRjtG5mYzm3GIy
+oQTlUVz8zKQUNLc1GuLkfbjGCCc3laNbQfLTaJ+bBIW8X58RyeIaVX3NYjWHra5V
+/j+ItGiCpi1XalcBuPAihEK//bxSzgMV/rQ1UjVMzQIDAQABo4IJ+jCCCfYwCQYD
+VR0TBAIwADAdBgNVHQ4EFgQUjGu0EgF43Ct4n1jsOABJEnrL/qowHwYDVR0jBBgw
+FoAUL85WFSdiBiigs5ykdVj2DYdZINgwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
+CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghV3
+d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIWd3d3
+MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIZd3d3
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
+dIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIud3d3LndlYi1wbGF0
+Zm9ybS50ZXN0ghp3d3cud3d3MS53ZWItcGxhdGZvcm0udGVzdIIad3d3Mi5ub3Qt
+d2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghp3
+d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cyLndlYi1wbGF0Zm9y
+bS50ZXN0ght3d3cxLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzEud3d3Mi53
+ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0gh13
+d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3MS53d3cubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnd3
+dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIeeG4tLWx2ZS02bGFkLndlYi1w
+bGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3
+dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2Vi
+LXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+H3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZs
+YWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRm
+b3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCI3d3
+dzIueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0giN4bi0tbHZlLTZsYWQu
+d3d3Mi53ZWItcGxhdGZvcm0udGVzdIIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBs
+YXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0
+giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIImd3d3Lnhu
+LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzIueG4tLWx2ZS02
+bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIInd3d3MS54bi0tbHZlLTZsYWQubm90
+LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZlLTZsYWQud3d3MS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0u
+dGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SC
+K3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXhu
+LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWItcGxhdGZvcm0udGVzdIIteG4t
+LW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gi13d3cu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
+OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
+OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEu
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s
+dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3
+d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
+gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0u
+dGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gjJ3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13
+ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2
+ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbHZlLTZsYWQueG4tLW44ajZk
+czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54
+bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu
+LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3
+d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFo
+djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3QwDQYJKoZIhvcNAQELBQADggEBAIl0WzFn9XKWejL1tJ7TCTmlpoumUYxCg3da
+s5+So2GA2Do8mJY167/bdE6kNfGvzeAZ7rG16v/vllZ/aHAadCTnZhpS8mZIahX0
+waReCepBF/xxG6ZjLfbuiYOWDORh4G7Czct3wuVoXcM30ncYyRzulTxBFx69AtmF
+49QY00cLmO3FLq2pJBZetEJmwXjOHwE503XNeMzaoFji37c4isJmRhybyxUQtAy2
+78fDGL2E7GvvmoY1lvG6U86WvxK/4awTSYyHC8a4sITx6gxOBD9RSlaINH35m+Pc
+S/5Xs+09Tga8D+e/v73GQ9xHqqA033tmhMIyVBb3Vu5ofM1Emdk=
+-----END CERTIFICATE-----