diff options
Diffstat (limited to 'testing/web-platform/tests/tools/certs')
-rw-r--r-- | testing/web-platform/tests/tools/certs/README.md | 99 | ||||
-rw-r--r-- | testing/web-platform/tests/tools/certs/cacert.key | 30 | ||||
-rw-r--r-- | testing/web-platform/tests/tools/certs/cacert.pem | 125 | ||||
-rw-r--r-- | testing/web-platform/tests/tools/certs/config.json | 17 | ||||
-rw-r--r-- | testing/web-platform/tests/tools/certs/web-platform.test.key | 28 | ||||
-rw-r--r-- | testing/web-platform/tests/tools/certs/web-platform.test.pem | 133 |
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..a02adcacab --- /dev/null +++ b/testing/web-platform/tests/tools/certs/cacert.key @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI6zyhjDZlpjsCAggA +MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECKlIS+BRd8lLBIIEyCwK12KwvZLZ +v0G+K0yv6s3h45NNywn2Jn8e8GxSMbsGvUswNlNIzYbloibVnu7KpdZ58D4upbTu +dJCrxCtvfP44h7aYswgVk7+thutpAl9roeDWe9e3C+iQMA4UHiIiSmSNe5KrLmu2 +DMezpSyQjqX+OJPpL/3Yiwd45Ae4Okd/c6DqnFEMWFdBqWt0Ft8+HOWELTQyQgYs +8cma4rqDqtX5QBZ4QBPm8hOp7+LhHITV1qpyaa/nnQQfZx/e1Cyq/h/hcnkbrwuE +I26s7hcpCaFXN7mSt7GJcZAt5oBqzmDw735iM+FlShokdBsYJEQqWaOVfuzeQYYx +xt0fz8CReOskIg06jJMXyiWPauutHpiNmQTdcFAE9oO2pUJQCZ3ytaSYG3oP0Byb +QgEyxhiw6mKv64ZtiAeHPBv7nBl/UPlOSNrXQ+QIyimohdQ+QFeay0eSPgnBwC/H +MnRaKG6341j5Tk3Itl/5cB6b9VZxvaDgvQNmRNf82EtqCj3YDx7cJF19C7Ut1M0W +mGLYkudLXne+pLkCWuhKWKEjDp+uDQHF7Zq2q3+l1Wk4DROCtEIO3ruOBLYgNUQf +flEA6FCw94YlrGKzjRzusXGvBriSrcwlvIc/d55goTZWIZiztPz9c0O93Qg2vYiC +eJU7D/73byozX0hYOL6d6gWPq4yvbtV/IAZzr+7JuT4j+MVcRkm7lbFhqge/RSbf +q2iwOOKLs3bpNlMI8S2jtBxPqZ5U/B/eI5slap8Z3xbMuqVAJr4vW4kDGC2WCDFG +3PXtJvfk4+slbU6cNSzHVk88cS73fRzB4IYyU/txNicyEL0R2iHm7scYKRFJqcKX +OnDqy4oc5afdv1jfmjb6hA2Xx6T5rC8FMcHBx0M6gi9Y6A/7OadHcRyZySG3F7Xq ++3eub3bwrLwOBEnpm4nl0ucU19WS8kI64gvZbDoQf9kxvOHHFZmjYC0KPFruEWG2 +jFq6xINzA9oTCsR7KWsn+/q3zu5yic9lHtQFN2WnzDzuDoZaVvLY/xqq61ZfROHT +Q14CfWQMXHwXOn/k9knkm2pNzjti07b+v/X2Wb3eYp85ysn+/jT6ubq4qCtXwHRU +++IZFpeL3xiuW6uyv+d1Am7Jt/m1JR743WFEOcLV3DZYikbzqG0Y2rWN0L95uhUm +eCxGLhPoj+j32dSgLhyK/R2n/ka2Ggp+YD+BAyctNUdpVVoqp4IOdCurPBNzNjAv +Z1qf2SJPKtIk4072VhyuOVUrz8eEQP5+gTUTMNMxFu001EVPrLtAH15KqBay2WAg +7tdiBZhvXZuICODwMHl8T+hOfLKYGRvxzsjhLU9Ja2b/0jyblt+9pGIwR4RcOBnO +iZTjKeUlq0R+5P5juqiOSEsB1gazaqu8t/xPzILAxBKz2PypeiVgDLxoRZaa2jGZ +4SAbE53d58NteP6N0wNPtMix0n2JfH1iwdghHXPF+BS+OHjl+4SriJJw+ylmIpjW +Sj5u5vQFyl+vnxCiAvo0396MsNsuvIgw8LIcDCI+xgtziYhXapi7vz+U0v2MnglG +GIVsfsJpMV92B7ch9OodKzitrBZxMRhnKOGekNkjJaGK/iBiRFbDCfnVqWK0Qete +hPlZzINynSbHPifLVeyfZg== +-----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..101ed61741 --- /dev/null +++ b/testing/web-platform/tests/tools/certs/cacert.pem @@ -0,0 +1,125 @@ +-----BEGIN CERTIFICATE----- +MIIW5zCCFc+gAwIBAgIDCrFbMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl +Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMjA3MTIxMjQ1MTdaFw0yMzA3MTIxMjQ1MTda +MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAOIOEkl98dlmCeI7SCy2wyAALDEblG813gVVErnMjOPl +o6BpynugeJx7OX85cGJXpn/xiPZi7922W+swGnBCtoe073kMif6WQRylplkJQhqf +I92IaDecX+f5ROTr7mCcloolt2yRohsAODe1TLZ7VqXouVEMws4+Y5Sp+TMG011Y +mB+qFEYIjhmvH0w4UoQxz5TBtvj6nkFoRdZRgnLbIkJZ0HVtefy1AhEsOgnz7yba +pstR97iZTuro0E6hcnMAdEKpXXXSYqV3HYPZzn9YAA8BloAM0GHSS9yWMRoV7UnS +07YjsorpbE6iQAV/CAWZtBaLmMlNY+cxefEK2NRPqhECAwEAAaOCFC4wghQqMAwG +A1UdEwQFMAMBAf8wHQYDVR0OBBYEFMo8kufcUDkL5UQ/32+RXOKIKjrWMEcGA1Ud +IwRAMD6AFMo8kufcUDkL5UQ/32+RXOKIKjrWoSGkHzAdMRswGQYDVQQDDBJ3ZWIt +cGxhdGZvcm0tdGVzdHOCAwqxWzALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ ++KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVd3d3LndlYi1wbGF0Zm9ybS50 +ZXN0MBeCFW5vdC13ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9y +bS50ZXN0MBiCFnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lnd3dy53ZWIt +cGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3 +dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9y +bS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3 +LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0 +MByCGnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3MS53ZWIt +cGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwHYIb +d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3Mi53ZWItcGxh +dGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh53 +d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzEubm90LXdl +Yi1wbGF0Zm9ybS50ZXN0MCCCHnd3dzEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz +dDAggh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Lnd3dzIu +bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRm +b3JtLnRlc3QwIYIfd3d3Mi53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93 +d3cyLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3Mi5ub3Qt +d2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZv +cm0udGVzdDAkgiJ3d3cueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCSC +InhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02 +bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEu +d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRm +b3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3Qw +KIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKIImd3d3 +LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02 +bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3huLS1sdmUtNmxhZC53 +d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cxLnhuLS1sdmUtNmxhZC5u +b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYInd3d3Mi54bi0tbHZlLTZsYWQubm90LXdl +Yi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w +bGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBs +YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1w +bGF0Zm9ybS50ZXN0MC+CLXd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWIt +cGxhdGZvcm0udGVzdDAvgi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2Vi +LXBsYXRmb3JtLnRlc3QwMIIud3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53 +ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cx +LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3 +dzIud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo +djI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02 +bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF4bi0tbjhqNmRzNTNsd3drcnFo +djI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXd3dy54bi0tbjhqNmRz +NTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4tLW44ajZk +czUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4t +LW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw +NIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt +LnRlc3QwNIIyd3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs +YXRmb3JtLnRlc3QwOII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2 +MjhhLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh +LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbjhqNmRzNTNs +d3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC +OnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs +YXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk +czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44ajZkczUz +bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0 +Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiC +EXdlYi1wbGF0Zm9ybS50ZXN0ghV3d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13 +ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53 +ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIZd3d3 +Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRl +c3SCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxh +dGZvcm0udGVzdIIad3d3MS53d3cud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90 +LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLnd3dy53ZWItcGxhdGZvcm0udGVzdIIb +d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cyLnd3dzEud2ViLXBsYXRm +b3JtLnRlc3SCG3d3dzEud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cy +LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz +dIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt +d2ViLXBsYXRmb3JtLnRlc3SCHnd3dzEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz +dIIeeG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qt +d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRl +c3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5u +b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt +LnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54 +bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cu +d2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9y +bS50ZXN0giN4bi0tbHZlLTZsYWQud3d3MS53ZWItcGxhdGZvcm0udGVzdIIjd3d3 +Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3d3dzEueG4tLWx2ZS02 +bGFkLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt +cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt +LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn +eG4tLWx2ZS02bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhu +LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzIueG4tLWx2ZS02 +bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy +OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu +d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53 +ZWItcGxhdGZvcm0udGVzdIItd3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndl +Yi1wbGF0Zm9ybS50ZXN0gi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2Vi +LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi +LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi +LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi +LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi +LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl +Yi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90 +LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu +bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53 +d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYy +OGEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnd3dzIueG4tLW44ajZkczUz +bHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2 +ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02 +bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4 +bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt +LnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt +d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr +cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty +cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0 +gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4 +YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAFgUyc+X +AMTXjKv+IuKOSKSNp5WsA7tNEK8HHvKyKraX611JTPUejxohoSZv7scL2+8GOMsq +9I9mmju4l0F45FiphfrR3swVquSM1jK6k9BDTchQU5FQOoBhunvrtwb7Y64/AiCy +ZRE7nkOtV/6mIjrGjFu97JT0OwbZ+SFw+bNVWmf6RMea550ODCS/jsEo3Scbihya +oHPCVFk29oEBqOOlWITasEc5Z4IpZRn31mT3YV/+GHfMDJ16lEENwg2iXIrjcU0a +a0/KCLgRZKBNorlVt3E/3awQVJV2qn4Ei7sMaIjPn4oMen166poZe7oA8mKHaavp +VKvWQ5Gh5LHGhZs= +-----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..26b926f7a5 --- /dev/null +++ b/testing/web-platform/tests/tools/certs/web-platform.test.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDf1DWXJxBWd17d +IofHTgQIBfsq32PiaxjN/89gNhC+rB4RHwhnCX3cuvLPDOvvMpA4GCXAX3pYeDSV +OBks6xuZNx25BQTvV0ydCDhf7YVkkRZfj1x0bRPknwSNDjCE0NPH40AghmS/h+Tf +GU80rQDFji0/FapcswmLMmKcB9kl+dvudmaSWqCnWZTpT/kyLBWSd5+mkA6S1br2 +lQSIE6N5O9oaU1jAK1E6jQ2ld3DFM8JINRW9fsx7u5OMu2gds84AbGPc1bPOW9ad +gFrcxngiYdHGZ0hvYLi7RofbD3OR0CTir4txNd0YXewTcENKBcBb7i2DRP9J8nuy +5YUhycgXAgMBAAECggEAGMEPbDgVxnpNM4euHIy0RW7j6Enscg4GIEI6XRmdoHjI +mnwkIcEa+l5ynBOBxGKDMLD6+9uTXFVu+1HI9v7Jfphp4Rx8/ztYbcWK9pD+P7EM +GGVyhC3MFWzAxBjdpNKzmVe4r+AtJEGTPlk+OUUo4LBosKFkxfvHAm4AGeGEUn6q +ppoaJbGjjbeKzZFkS6RdHqpJJ4b/o8oOlraHAEZb/vJk31pgokUBV1Hh0BYeLuHA +ugQT2+a8sX3MwbHC8+6poPR5kpmQUzoVEuN+Iz/ccr9ruUeD10TFcQYl/4gx/gl4 +isjLK3mDCAt7FWGWeVuIjxyBOTrCeyHP0cZza8oKgQKBgQD5MYy3FNXdH9TowU54 +0J+0nAkoSz3w6Tsg9J2jdUtJ+l4yITiFd4p4512q8aVcaTIwQCCGEWxE3Y7Cbt09 +YAK+BLNnXaGQPYomIvt9W8zOrjp/5sB1ac40q5e90Ng9czVHWIGDxE5pEpg8eHza +PxxdhCGAkEtkahKpYn6nqT7S+wKBgQDl8U0e05DerY36hxSmWVSv+P7ccwzq/FWS +oke1CUTO2njt/IWiPI/Di5VZl0jQ7vChcHVFpFn/Igr4sWq30fqdRvNjGV78Htyy +2Jd6XpLSDOHdJr4Ykx0WORenXerdvZB1+OV78I2m1BgVS/OOhOgwK9LhTYlMHVIn +hU1ASbo0lQKBgQCzoT44M3K+xVVquv3gJTMatGf9fc+Wu+l9pheEXub42tvP8xaV +T0ioQs/IjAyRgttE4NURD7omIjfofJZKyczwQN86Icp2+YV+XDVBdk06p2lQDXyq +pqyYVyE5GTTnhwbe+TPTUkzbfSX0YT5O7LN7zeWAkYNnTPdK1s9J+LxqxQKBgQCR +vzUmyOsWeeN4XI6WMiEfuS+yA6q4d2C2JO5WrZ1Tj97+2gTKJKDrTVpJAz9AT3Nu +oJ10mwwAT0+s+qeuBAZaElLLCZXPMLCrG+ZHxhJB2bCAQMJVSUoyf9WiXEE2c6VR +YYXz3TGsANuTBCVIvK1/ewebj03rVNpx+mhQy2qfUQKBgQDYzRKBO21bpw0IcD1v +r35D688y55bG2vTjV2vFoUpanLV6gftY473C/gwNJXAs69uJIeT9AM+KE6n/3bEK +8rS8M6TcN8I3cRYwNnx+OPFF+YD8KVsbv8I2y2Gu1xGrMd+PyAHYnQmXcaYqN7eU +hqH7BXYpwNm96Lm4De1W+tXPJA== +-----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..be1bfd5a1f --- /dev/null +++ b/testing/web-platform/tests/tools/certs/web-platform.test.pem @@ -0,0 +1,133 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 700764 (0xab15c) + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=web-platform-tests + Validity + Not Before: Jul 12 12:45:17 2022 GMT + Not After : Jul 12 12:45:17 2023 GMT + Subject: CN=web-platform.test + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:df:d4:35:97:27:10:56:77:5e:dd:22:87:c7:4e: + 04:08:05:fb:2a:df:63:e2:6b:18:cd:ff:cf:60:36: + 10:be:ac:1e:11:1f:08:67:09:7d:dc:ba:f2:cf:0c: + eb:ef:32:90:38:18:25:c0:5f:7a:58:78:34:95:38: + 19:2c:eb:1b:99:37:1d:b9:05:04:ef:57:4c:9d:08: + 38:5f:ed:85:64:91:16:5f:8f:5c:74:6d:13:e4:9f: + 04:8d:0e:30:84:d0:d3:c7:e3:40:20:86:64:bf:87: + e4:df:19:4f:34:ad:00:c5:8e:2d:3f:15:aa:5c:b3: + 09:8b:32:62:9c:07:d9:25:f9:db:ee:76:66:92:5a: + a0:a7:59:94:e9:4f:f9:32:2c:15:92:77:9f:a6:90: + 0e:92:d5:ba:f6:95:04:88:13:a3:79:3b:da:1a:53: + 58:c0:2b:51:3a:8d:0d:a5:77:70:c5:33:c2:48:35: + 15:bd:7e:cc:7b:bb:93:8c:bb:68:1d:b3:ce:00:6c: + 63:dc:d5:b3:ce:5b:d6:9d:80:5a:dc:c6:78:22:61: + d1:c6:67:48:6f:60:b8:bb:46:87:db:0f:73:91:d0: + 24:e2:af:8b:71:35:dd:18:5d:ec:13:70:43:4a:05: + c0:5b:ee:2d:83:44:ff:49:f2:7b:b2:e5:85:21:c9: + c8:17 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 53:34:14:49:85:A6:DE:7F:A4:F6:2C:42:A9:1A:9C:F7:D9:20:50:C1 + X509v3 Authority Key Identifier: + keyid:CA:3C:92:E7:DC:50:39:0B:E5:44:3F:DF:6F:91:5C:E2:88:2A:3A:D6 + + 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.www.web-platform.test, DNS:www.not-web-platform.test, DNS:www.www2.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.www.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www1.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.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:www1.xn--lve-6lad.not-web-platform.test, DNS:www2.xn--lve-6lad.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:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.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:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www.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:www1.xn--n8j6ds53lwwkrqhv28a.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 + 74:00:12:c7:43:34:fd:87:4e:f8:67:58:34:e2:c7:42:be:a8: + fc:61:df:11:9c:77:18:d5:0b:e6:92:a1:c2:d9:9b:20:a5:ee: + e8:81:ab:62:fb:55:67:35:95:fa:8b:b6:a5:3b:52:f7:d4:21: + e8:7c:b5:37:12:58:02:24:b5:7e:93:4f:6c:ce:5b:4b:af:8f: + fc:22:e2:03:2d:47:d2:87:43:c0:de:82:a7:5b:6a:97:2f:e9: + f7:46:f4:41:d2:35:07:62:c5:a4:e8:08:a2:90:1d:44:4a:3d: + 71:d6:c5:f5:40:2d:99:0d:33:4f:0f:31:69:f7:02:bd:c5:44: + b9:42:9e:f2:94:36:44:66:b8:b8:81:99:06:d2:b7:df:cb:b0: + 01:c8:5b:64:15:a4:75:78:da:71:b1:92:01:5b:55:7c:76:94: + a2:f3:1a:23:78:37:e5:65:51:0f:ca:66:91:d4:62:1b:b7:22: + d2:75:37:7e:67:ac:b5:9d:b3:50:c8:db:76:29:a1:73:21:74: + 71:9e:25:de:25:2a:2c:20:fb:e8:68:eb:9f:fc:f1:a7:85:69: + a4:a8:0d:93:4b:ff:f5:9d:32:31:d3:ca:7e:0e:79:f3:45:32: + d8:fc:35:12:d4:08:71:fd:e2:0e:64:55:a2:5a:f4:2f:be:19: + f1:2d:be:3f +-----BEGIN CERTIFICATE----- +MIIMsjCCC5qgAwIBAgIDCrFcMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl +Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMjA3MTIxMjQ1MTdaFw0yMzA3MTIxMjQ1MTda +MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA39Q1lycQVnde3SKHx04ECAX7Kt9j4msYzf/PYDYQvqwe +ER8IZwl93Lryzwzr7zKQOBglwF96WHg0lTgZLOsbmTcduQUE71dMnQg4X+2FZJEW +X49cdG0T5J8EjQ4whNDTx+NAIIZkv4fk3xlPNK0AxY4tPxWqXLMJizJinAfZJfnb +7nZmklqgp1mU6U/5MiwVknefppAOktW69pUEiBOjeTvaGlNYwCtROo0NpXdwxTPC +SDUVvX7Me7uTjLtoHbPOAGxj3NWzzlvWnYBa3MZ4ImHRxmdIb2C4u0aH2w9zkdAk +4q+LcTXdGF3sE3BDSgXAW+4tg0T/SfJ7suWFIcnIFwIDAQABo4IJ+jCCCfYwCQYD +VR0TBAIwADAdBgNVHQ4EFgQUUzQUSYWm3n+k9ixCqRqc99kgUMEwHwYDVR0jBBgw +FoAUyjyS59xQOQvlRD/fb5Fc4ogqOtYwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG +CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghV3 +d3cud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIWd3d3 +MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIZd3d3 +Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz +dIIad3d3Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCGnd3dy53d3cxLndlYi1wbGF0 +Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3MS53d3cu +d2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3 +d3cyLnd3dy53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cxLndlYi1wbGF0Zm9y +bS50ZXN0ght3d3cyLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzEud3d3Mi53 +ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0gh13 +d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Mi53d3cubm90LXdlYi1w +bGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnd3 +dzEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIeeG4tLWx2ZS02bGFkLndlYi1w +bGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3 +dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2Vi +LXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC +H3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5u +b3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRm +b3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCI3hu +LS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0giN4bi0tbHZlLTZsYWQu +d3d3MS53ZWItcGxhdGZvcm0udGVzdIIjd3d3Mi54bi0tbHZlLTZsYWQud2ViLXBs +YXRmb3JtLnRlc3SCI3d3dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0 +giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIImd3d3Lnhu +LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53 +d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIneG4tLWx2ZS02bGFkLnd3dzEubm90 +LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs +YXRmb3JtLnRlc3SCJ3d3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0u +dGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SC +K3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXhu +LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWItcGxhdGZvcm0udGVzdIItd3d3 +LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gi14bi0t +bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu +eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u +OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u +OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEu +eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s +dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0t +bjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3 +d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0 +gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cyLm5vdC13ZWItcGxhdGZvcm0u +dGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRm +b3JtLnRlc3SCMnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1w +bGF0Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13 +ZWItcGxhdGZvcm0udGVzdII2eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2ty +cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbjhqNmRzNTNsd3drcnFodjI4 +YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3 +d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu +LS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRm +b3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3 +d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFo +djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl +c3QwDQYJKoZIhvcNAQELBQADggEBAHQAEsdDNP2HTvhnWDTix0K+qPxh3xGcdxjV +C+aSocLZmyCl7uiBq2L7VWc1lfqLtqU7UvfUIeh8tTcSWAIktX6TT2zOW0uvj/wi +4gMtR9KHQ8Degqdbapcv6fdG9EHSNQdixaToCKKQHURKPXHWxfVALZkNM08PMWn3 +Ar3FRLlCnvKUNkRmuLiBmQbSt9/LsAHIW2QVpHV42nGxkgFbVXx2lKLzGiN4N+Vl +UQ/KZpHUYhu3ItJ1N35nrLWds1DI23YpoXMhdHGeJd4lKiwg++ho65/88aeFaaSo +DZNL//WdMjHTyn4OefNFMtj8NRLUCHH94g5kVaJa9C++GfEtvj8= +-----END CERTIFICATE----- |