mirror of https://github.com/postgres/postgres
It's not run by the global "check" or "installcheck" targets, because the temporary installation it creates accepts TCP connections from any user the same host, which is insecure.pull/14/head
parent
dcbfc00aba
commit
e39250c644
@ -0,0 +1,126 @@ |
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile for src/test/ssl
|
||||
#
|
||||
# Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
|
||||
# Portions Copyright (c) 1994, Regents of the University of California
|
||||
#
|
||||
# src/test/ssl/Makefile
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
subdir = src/test/ssl
|
||||
top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global |
||||
|
||||
CERTIFICATES := server_ca server-cn-and-alt-names \
|
||||
server-cn-only server-single-alt-name server-multiple-alt-names \
|
||||
server-no-names server-revoked server-ss \
|
||||
client_ca client client-revoked \
|
||||
root_ca
|
||||
|
||||
SSLFILES := $(CERTIFICATES:%=ssl/%.key) $(CERTIFICATES:%=ssl/%.crt) \
|
||||
ssl/client.crl ssl/server.crl ssl/root.crl \
|
||||
ssl/both-cas-1.crt ssl/both-cas-2.crt \
|
||||
ssl/root+server_ca.crt ssl/root+server.crl \
|
||||
ssl/root+client_ca.crt ssl/root+client.crl
|
||||
|
||||
# This target generates all the key and certificate files.
|
||||
sslfiles: $(SSLFILES) |
||||
|
||||
# Openssl requires a directory to put all generated certificates in. We don't
|
||||
# use this for anything, but we need a location.
|
||||
ssl/new_certs_dir: |
||||
mkdir ssl/new_certs_dir
|
||||
|
||||
# Rule for creating private/public key pairs.
|
||||
ssl/%.key: |
||||
openssl genrsa -out $@ 1024
|
||||
chmod 0600 $@
|
||||
|
||||
# Root CA certificate
|
||||
ssl/root_ca.crt: ssl/root_ca.key cas.config |
||||
touch ssl/root_ca-certindex
|
||||
openssl req -new -out ssl/root_ca.crt -x509 -config cas.config -config root_ca.config -key ssl/root_ca.key
|
||||
echo "01" > ssl/root_ca.srl
|
||||
|
||||
# Client and server CAs
|
||||
ssl/%_ca.crt: ssl/%_ca.key %_ca.config ssl/root_ca.crt ssl/new_certs_dir |
||||
touch ssl/$*_ca-certindex
|
||||
openssl req -new -out ssl/temp_ca.crt -config cas.config -config $*_ca.config -key ssl/$*_ca.key
|
||||
# Sign the certificate with the root CA
|
||||
openssl ca -name root_ca -batch -config cas.config -in ssl/temp_ca.crt -out ssl/temp_ca_signed.crt
|
||||
openssl x509 -in ssl/temp_ca_signed.crt -out ssl/$*_ca.crt # to keep just the PEM cert
|
||||
rm ssl/temp_ca.crt ssl/temp_ca_signed.crt
|
||||
echo "01" > ssl/$*_ca.srl
|
||||
|
||||
# Server certificates, signed by server CA:
|
||||
ssl/server-%.crt: ssl/server-%.key ssl/server_ca.crt server-%.config |
||||
openssl req -new -key ssl/server-$*.key -out ssl/server-$*.csr -config server-$*.config
|
||||
openssl ca -name server_ca -batch -config cas.config -in ssl/server-$*.csr -out ssl/temp.crt -extensions v3_req -extfile server-$*.config
|
||||
openssl x509 -in ssl/temp.crt -out ssl/server-$*.crt # to keep just the PEM cert
|
||||
rm ssl/server-$*.csr
|
||||
|
||||
# Self-signed version of server-cn-only.crt
|
||||
ssl/server-ss.crt: ssl/server-cn-only.key ssl/server-cn-only.crt server-cn-only.config |
||||
openssl req -new -key ssl/server-cn-only.key -out ssl/server-ss.csr -config server-cn-only.config
|
||||
openssl x509 -req -days 10000 -in ssl/server-ss.csr -signkey ssl/server-cn-only.key -out ssl/server-ss.crt -extensions v3_req -extfile server-cn-only.config
|
||||
rm ssl/server-ss.csr
|
||||
|
||||
# Client certificate, signed by the client CA:
|
||||
ssl/client.crt: ssl/client.key ssl/client_ca.crt |
||||
openssl req -new -key ssl/client.key -out ssl/client.csr -config client.config
|
||||
openssl ca -name client_ca -batch -out ssl/temp.crt -config cas.config -infiles ssl/client.csr
|
||||
openssl x509 -in ssl/temp.crt -out ssl/client.crt # to keep just the PEM cert
|
||||
rm ssl/client.csr ssl/temp.crt
|
||||
|
||||
# Another client certificate, signed by the client CA. This one is revoked.
|
||||
ssl/client-revoked.crt: ssl/client-revoked.key ssl/client_ca.crt client.config |
||||
openssl req -new -key ssl/client-revoked.key -out ssl/client-revoked.csr -config client.config
|
||||
openssl ca -name client_ca -batch -out ssl/temp.crt -config cas.config -infiles ssl/client-revoked.csr
|
||||
openssl x509 -in ssl/temp.crt -out ssl/client-revoked.crt # to keep just the PEM cert
|
||||
rm ssl/client-revoked.csr ssl/temp.crt
|
||||
|
||||
# Root certificate files that contains both CA certificates, for testing
|
||||
# that multiple certificates can be used.
|
||||
ssl/both-cas-1.crt: ssl/root_ca.crt ssl/client_ca.crt ssl/server_ca.crt |
||||
cat $^ > $@
|
||||
|
||||
# The same, but the certs are in different order
|
||||
ssl/both-cas-2.crt: ssl/root_ca.crt ssl/server_ca.crt ssl/client_ca.crt |
||||
cat $^ > $@
|
||||
|
||||
# A root certificate file for the client, to validate server certs.
|
||||
ssl/root+server_ca.crt: ssl/root_ca.crt ssl/server_ca.crt |
||||
cat $^ > $@
|
||||
|
||||
# and for the server, to validate client certs
|
||||
ssl/root+client_ca.crt: ssl/root_ca.crt ssl/client_ca.crt |
||||
cat $^ > $@
|
||||
|
||||
#### CRLs
|
||||
|
||||
ssl/client.crl: ssl/client-revoked.crt |
||||
openssl ca -config cas.config -name client_ca -revoke ssl/client-revoked.crt
|
||||
openssl ca -config cas.config -name client_ca -gencrl -out ssl/client.crl
|
||||
|
||||
ssl/server.crl: ssl/server-revoked.crt |
||||
openssl ca -config cas.config -name server_ca -revoke ssl/server-revoked.crt
|
||||
openssl ca -config cas.config -name server_ca -gencrl -out ssl/server.crl
|
||||
|
||||
ssl/root.crl: ssl/root_ca.crt |
||||
openssl ca -config cas.config -name root_ca -gencrl -out ssl/root.crl
|
||||
|
||||
# If a CRL is used, OpenSSL requires a CRL file for *all* the CAs in the
|
||||
# chain, even if some of them are empty.
|
||||
ssl/root+server.crl: ssl/root.crl ssl/server.crl |
||||
cat $^ > $@
|
||||
ssl/root+client.crl: ssl/root.crl ssl/client.crl |
||||
cat $^ > $@
|
||||
|
||||
.PHONY: sslfiles-clean |
||||
sslfiles-clean: |
||||
rm -f $(SSLFILES) ssl/client_ca.srl ssl/server_ca.srl ssl/client_ca-certindex* ssl/server_ca-certindex* ssl/root_ca-certindex* ssl/root_ca.srl ssl/temp_ca.crt ssl/temp_ca_signed.crt
|
||||
|
||||
check: |
||||
$(prove_check)
|
@ -0,0 +1,83 @@ |
||||
src/test/ssl/README |
||||
|
||||
SSL regression tests |
||||
==================== |
||||
|
||||
This directory contains a test suite for SSL support. It tests both |
||||
client-side functionality, i.e. verifying server certificates, and |
||||
server-side functionality, i.e. certificate authorization. |
||||
|
||||
Running the tests |
||||
================= |
||||
|
||||
make check |
||||
|
||||
NOTE: This creates a temporary installation, and sets it up to listen for TCP |
||||
connections on localhost. Any user on the same host is allowed to log in to |
||||
the test installation while the tests are running. Do not run this suite |
||||
on a multi-user system where you don't trust all local users! |
||||
|
||||
Certificates |
||||
============ |
||||
|
||||
The test suite needs a set of public/private key pairs and certificates to |
||||
run: |
||||
|
||||
root_ca |
||||
root CA, use to sign the server and client CA certificates. |
||||
|
||||
server_ca |
||||
CA used to sign server certificates. |
||||
|
||||
client_ca |
||||
CA used to sign client certificates. |
||||
|
||||
server-cn-only |
||||
server-cn-and-alt-names |
||||
server-single-alt-name |
||||
server-multiple-alt-names |
||||
server-no-names |
||||
server certificates, with small variations in the hostnames present |
||||
in the certificate. Signed by server_ca. |
||||
|
||||
server-ss |
||||
same as server-cn-only, but self-signed. |
||||
|
||||
client |
||||
a client certificate, for user "ssltestuser". Signed by client_ca. |
||||
|
||||
client-revoked |
||||
like "client", but marked as revoked in the client CA's CRL. |
||||
|
||||
In addition, there are a few files that combine various certificates together |
||||
in the same file: |
||||
|
||||
both-cas-1 |
||||
Contains root_ca.crt, client_ca.crt and server_ca.crt, in that order. |
||||
|
||||
both-cas-2 |
||||
Contains root_ca.crt, server_ca.crt and client_ca.crt, in that order. |
||||
|
||||
root+server_ca |
||||
Contains root_crt and server_ca.crt. For use as client's "sslrootcert" |
||||
option. |
||||
|
||||
root+client_ca |
||||
Contains root_crt and client_ca.crt. For use as server's "ssl_ca_file". |
||||
|
||||
There are also CRLs for each of the CAs: root.crl, server.crl and client.crl. |
||||
|
||||
For convenience, all of these keypairs and certificates are included in the |
||||
ssl/ subdirectory. The Makefile also contains a rule, "make sslfiles", to |
||||
recreate them if you need to make changes. |
||||
|
||||
TODO |
||||
==== |
||||
|
||||
* Allow the client-side of the tests to be run on different host easily. |
||||
Currently, you have to manually set up the certificates for the right |
||||
hostname, and modify the test file to skip setting up the server. And you |
||||
have to modify the server to accept connections from the client host. |
||||
|
||||
* Test having multiple server certificates, so that the private key chooses |
||||
the certificate to present to clients. (And the same in the client-side.) |
@ -0,0 +1,96 @@ |
||||
# This module sets up a test server, for the SSL regression tests. |
||||
# |
||||
# The server is configured as follows: |
||||
# |
||||
# - SSL enabled, with the server certificate specified by argument to |
||||
# switch_server_cert function. |
||||
# - ssl/root+client_ca.crt as the CA root for validating client certs. |
||||
# - reject non-SSL connections |
||||
# - a database called trustdb that lets anyone in |
||||
# - another database called certdb that uses certificate authentiction, ie. |
||||
# the client must present a valid certificate signed by the client CA |
||||
# - two users, called ssltestuser and anotheruser. |
||||
# |
||||
# The server is configured to only accept connections from localhost. If you |
||||
# want to run the client from another host, you'll have to configure that |
||||
# manually. |
||||
package ServerSetup; |
||||
|
||||
use strict; |
||||
use warnings; |
||||
use TestLib; |
||||
use Test::More; |
||||
|
||||
use Exporter 'import'; |
||||
our @EXPORT = qw( |
||||
configure_test_server_for_ssl switch_server_cert |
||||
); |
||||
|
||||
sub configure_test_server_for_ssl |
||||
{ |
||||
my $tempdir = $_[0]; |
||||
|
||||
# Create test users and databases |
||||
psql 'postgres', "CREATE USER ssltestuser"; |
||||
psql 'postgres', "CREATE USER anotheruser"; |
||||
psql 'postgres', "CREATE DATABASE trustdb"; |
||||
psql 'postgres', "CREATE DATABASE certdb"; |
||||
|
||||
# enable logging etc. |
||||
open CONF, ">>$tempdir/pgdata/postgresql.conf"; |
||||
print CONF "fsync=off\n"; |
||||
print CONF "log_connections=on\n"; |
||||
print CONF "log_hostname=on\n"; |
||||
print CONF "log_statement=all\n"; |
||||
|
||||
# enable SSL and set up server key |
||||
print CONF "include 'sslconfig.conf'"; |
||||
|
||||
close CONF; |
||||
|
||||
|
||||
# Copy all server certificates and keys, and client root cert, to the data dir |
||||
system_or_bail "cp ssl/server-*.crt '$tempdir'/pgdata"; |
||||
system_or_bail "cp ssl/server-*.key '$tempdir'/pgdata"; |
||||
system_or_bail "chmod 0600 '$tempdir'/pgdata/server-*.key"; |
||||
system_or_bail "cp ssl/root+client_ca.crt '$tempdir'/pgdata"; |
||||
system_or_bail "cp ssl/root+client.crl '$tempdir'/pgdata"; |
||||
|
||||
# Only accept SSL connections from localhost. Our tests don't depend on this |
||||
# but seems best to keep it as narrow as possible for security reasons. |
||||
# |
||||
# When connecting to certdb, also check the client certificate. |
||||
open HBA, ">$tempdir/pgdata/pg_hba.conf"; |
||||
print HBA "# TYPE DATABASE USER ADDRESS METHOD\n"; |
||||
print HBA "hostssl trustdb ssltestuser 127.0.0.1/32 trust\n"; |
||||
print HBA "hostssl trustdb ssltestuser ::1/128 trust\n"; |
||||
print HBA "hostssl certdb ssltestuser 127.0.0.1/32 cert\n"; |
||||
print HBA "hostssl certdb ssltestuser ::1/128 cert\n"; |
||||
close HBA; |
||||
} |
||||
|
||||
# Change the configuration to use given server cert file, and restart |
||||
# the server so that the configuration takes effect. |
||||
sub switch_server_cert |
||||
{ |
||||
my $tempdir = $_[0]; |
||||
my $certfile = $_[1]; |
||||
|
||||
diag "Restarting server with certfile \"$certfile\"..."; |
||||
|
||||
open SSLCONF, ">$tempdir/pgdata/sslconfig.conf"; |
||||
print SSLCONF "ssl=on\n"; |
||||
print SSLCONF "ssl_ca_file='root+client_ca.crt'\n"; |
||||
print SSLCONF "ssl_cert_file='$certfile.crt'\n"; |
||||
print SSLCONF "ssl_key_file='$certfile.key'\n"; |
||||
print SSLCONF "ssl_crl_file='root+client.crl'\n"; |
||||
close SSLCONF; |
||||
|
||||
# Stop and restart server to reload the new config. We cannot use |
||||
# restart_test_server() because that overrides listen_addresses to only all |
||||
# Unix domain socket connections. |
||||
|
||||
system_or_bail 'pg_ctl', 'stop', '-D', "$tempdir/pgdata", '-w'; |
||||
system_or_bail 'pg_ctl', 'start', '-D', "$tempdir/pgdata", '-w', '-l', |
||||
"$tempdir/logfile"; |
||||
} |
@ -0,0 +1,65 @@ |
||||
# This file contains the configuration for all the CAs. |
||||
|
||||
[ req ] |
||||
prompt = no |
||||
req_extensions = v3_req |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
subjectAltName = @alt_names |
||||
|
||||
# Root CA, used to sign the certificates of the intermediary server and |
||||
# client CAs. |
||||
[ root_ca ] |
||||
dir = ./ssl/ |
||||
database = ./ssl/root_ca-certindex |
||||
serial = ./ssl/root_ca.srl |
||||
default_md = sha1 |
||||
default_days= 10000 |
||||
default_crl_days= 10000 |
||||
certificate = ./ssl/root_ca.crt |
||||
private_key = ./ssl/root_ca.key |
||||
new_certs_dir = ./ssl/new_certs_dir |
||||
policy = policy_match |
||||
email_in_dn = no |
||||
|
||||
# CA used to sign all the server certificates. |
||||
[ server_ca ] |
||||
dir = ./ssl/ |
||||
database = ./ssl/server_ca-certindex |
||||
default_md = sha1 |
||||
default_days= 10000 |
||||
default_crl_days= 10000 |
||||
certificate = ./ssl/server_ca.crt |
||||
private_key = ./ssl/server_ca.key |
||||
new_certs_dir = ./ssl/new_certs_dir |
||||
serial = ./ssl/server_ca.srl |
||||
policy = policy_match |
||||
email_in_dn = no |
||||
unique_subject = no |
||||
crl = ./ssl/server.crl |
||||
|
||||
# CA used to sign all the client certificates. |
||||
[ client_ca ] |
||||
dir = ./ssl/ |
||||
database = ./ssl/client_ca-certindex |
||||
default_md = sha1 |
||||
default_days= 10000 |
||||
default_crl_days= 10000 |
||||
certificate = ./ssl/client_ca.crt |
||||
private_key = ./ssl/client_ca.key |
||||
new_certs_dir = ./ssl/new_certs_dir |
||||
serial = ./ssl/client_ca.srl |
||||
policy = policy_match |
||||
email_in_dn = no |
||||
unique_subject = no |
||||
crl = ./ssl/client.crl |
||||
|
||||
# This is common for all CAs. |
||||
[ policy_match ] |
||||
countryName = optional |
||||
stateOrProvinceName = optional |
||||
organizationName = optional |
||||
organizationalUnitName = optional |
||||
commonName = optional |
||||
emailAddress = optional |
@ -0,0 +1,13 @@ |
||||
# An OpenSSL format CSR config file for creating a client certificate. |
||||
# |
||||
# The certificate is for user "ssltestuser". |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = ssltestuser |
||||
|
||||
# no extensions in client certs |
||||
[ v3_req ] |
@ -0,0 +1,11 @@ |
||||
# An OpenSSL format CSR config file for creating the client root certificate. |
||||
# This configuration file is also used when operating the CA. |
||||
# |
||||
# This certificate is used to sign client certificates. It is self-signed. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = Test CA for PostgreSQL SSL regression test client certs |
@ -0,0 +1,9 @@ |
||||
# A root certificate authority. The server and client CA's certificates |
||||
# are signed by this root CA. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = Test root CA for PostgreSQL SSL regression test suite |
@ -0,0 +1,25 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
# This certificate contains both a CN, and SANs. |
||||
|
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
# Note: According to RFC 2818 and 6125, the CN is ignored, when SANs are |
||||
# present. In practice, the hostname that's put in the CN field is always |
||||
# also listed as a SAN, but we intentionally don't do that here so that we |
||||
# can test adherence to those RFCs. |
||||
CN = common-name.pg-ssltest.test |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
subjectAltName = @alt_names |
||||
|
||||
[ alt_names ] |
||||
DNS.1 = dns1.alt-name.pg-ssltest.test |
||||
DNS.2 = dns2.alt-name.pg-ssltest.test |
@ -0,0 +1,15 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = common-name.pg-ssltest.test |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
|
@ -0,0 +1,20 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
# This certificate contains multiple SANs, and no CN. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
subjectAltName = @alt_names |
||||
|
||||
[ alt_names ] |
||||
DNS.1 = dns1.alt-name.pg-ssltest.test |
||||
DNS.2 = dns2.alt-name.pg-ssltest.test |
||||
DNS.3 = *.wildcard.pg-ssltest.test |
@ -0,0 +1,17 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
# This certificate contains no CN, nor SANs. Not very useful, but make |
||||
# sure the client can handle it gracefully. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
|
||||
[ alt_names ] |
@ -0,0 +1,17 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
# This is identical to server-cn-only certificate, but this one is revoked |
||||
# later. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = common-name.pg-ssltest.test |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
|
@ -0,0 +1,18 @@ |
||||
# An OpenSSL format CSR config file for creating a server certificate. |
||||
# |
||||
# This certificate has a single SAN, and no CN. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
req_extensions = v3_req |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
OU = PostgreSQL test suite |
||||
|
||||
# For Subject Alternative Names |
||||
[ v3_req ] |
||||
subjectAltName = @alt_names |
||||
|
||||
[ alt_names ] |
||||
DNS.1 = single.alt-name.pg-ssltest.test |
@ -0,0 +1,11 @@ |
||||
# An OpenSSL format CSR config file for creating the server root certificate. |
||||
# This configuration file is also used when operating the CA. |
||||
# |
||||
# This certificate is used to sign server certificates. It is self-signed. |
||||
|
||||
[ req ] |
||||
distinguished_name = req_distinguished_name |
||||
prompt = no |
||||
|
||||
[ req_distinguished_name ] |
||||
CN = Test CA for PostgreSQL SSL regression test server certs |
@ -0,0 +1,2 @@ |
||||
*.old |
||||
new_certs_dir |
@ -0,0 +1,39 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB9zCCAWACCQD13ziQMRDLGTANBgkqhkiG9w0BAQsFADBAMT4wPAYDVQQDDDVU |
||||
ZXN0IHJvb3QgQ0EgZm9yIFBvc3RncmVTUUwgU1NMIHJlZ3Jlc3Npb24gdGVzdCBz |
||||
dWl0ZTAeFw0xNDEyMDQxMTUyMDFaFw0xNTAxMDMxMTUyMDFaMEAxPjA8BgNVBAMM |
||||
NVRlc3Qgcm9vdCBDQSBmb3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0 |
||||
IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7TLars/P/obbNlsz |
||||
cX/wZFnZ97L4dAiJAE+ZusoTqLalRnPbQEtrPfMA/eL/gjq69ehnPcehMIxnYRAV |
||||
+xqOnMiUacf+6TQBrjrnfCQZkYkngzYajTqhQogdM7sUHtvBvTs1EkjdVznQUN9B |
||||
BRZi6zEvUMkc8/+KaiEKc0zAKQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAAhmmj+R |
||||
XP1+AREKWE33P8AkXTTGkXMvULZSgteHWxbBc08TbxJLTsqDvwp0lY/9nH48Ejx5 |
||||
XYIdDAED9Bwsm50y9u5p5OsO9YqHJfIsC9+Ui3paDHU543Y8CtZC4Ye5OcFn4/lp |
||||
ew5Ix9E0LHJlY+LCfVEKSV0jDP6aMsYETpIe |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQIwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIJfmyeyPe6g3+16+WsGB8LRMW |
||||
zfMXKKjxsBd3Zu2ka7jvfKe4ockw87kY01k0G4NHJgWH5zO2OuCNDOa8z+GLqSSO |
||||
LYoMvik9+BLgFR8zBPshy77Rpb3CtpDjJUAU8TWQOT0cC56IwEgj2zswctqKIeFg |
||||
ogkTbfg5KTNKSd4VUwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAIHyYzFTIvvrUFFD |
||||
yxhU3xyH6nx7HC47fxN+1kQjDa4MjvNsm/dOKETvS4b6GUKOudEKENBHzJW08hhs |
||||
vn8uvmWEmyYcUyhp9r5lH2oaa6fySbnc+PE8YD2WNe+et1OdIMwqVwOegCeI85FN |
||||
UtZk2tJjiRXJxBlheaaBxrzYjOBO |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQEwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC15tOzDBVKaCRDz9L5LMpPk8DR |
||||
RGHHOe4OuO6WTkUzjbjuKyiQbmtcp00R4dULbSM57ESvI/Ny0gPt+J/QKAOG8S5t |
||||
09wDpKxKcgZSZ6Nd6FaK+D+ZhUVAkP3hB0ba0wo1JZff/0e4B+VJhXTjl7RRHfbr |
||||
AEuDYFxv9T3K/Jq04wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJys1pnYvO+u8Wca |
||||
6xUToGMpqTnImKa+dX8tMKsp6mXAN/dWrOVMDWnjBhQxShhAZBsaJ4iUeXPJlctw |
||||
KzkUCQo6BsUbPMTSQlPuyHHdZBOTHDIW4SylKaBQvkundkhhBO7aHwFV3QjxZKcH |
||||
XqpGyY2ryrgdj2D4+H55NDXYjj/m |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,39 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB9zCCAWACCQD13ziQMRDLGTANBgkqhkiG9w0BAQsFADBAMT4wPAYDVQQDDDVU |
||||
ZXN0IHJvb3QgQ0EgZm9yIFBvc3RncmVTUUwgU1NMIHJlZ3Jlc3Npb24gdGVzdCBz |
||||
dWl0ZTAeFw0xNDEyMDQxMTUyMDFaFw0xNTAxMDMxMTUyMDFaMEAxPjA8BgNVBAMM |
||||
NVRlc3Qgcm9vdCBDQSBmb3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0 |
||||
IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7TLars/P/obbNlsz |
||||
cX/wZFnZ97L4dAiJAE+ZusoTqLalRnPbQEtrPfMA/eL/gjq69ehnPcehMIxnYRAV |
||||
+xqOnMiUacf+6TQBrjrnfCQZkYkngzYajTqhQogdM7sUHtvBvTs1EkjdVznQUN9B |
||||
BRZi6zEvUMkc8/+KaiEKc0zAKQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAAhmmj+R |
||||
XP1+AREKWE33P8AkXTTGkXMvULZSgteHWxbBc08TbxJLTsqDvwp0lY/9nH48Ejx5 |
||||
XYIdDAED9Bwsm50y9u5p5OsO9YqHJfIsC9+Ui3paDHU543Y8CtZC4Ye5OcFn4/lp |
||||
ew5Ix9E0LHJlY+LCfVEKSV0jDP6aMsYETpIe |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQEwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC15tOzDBVKaCRDz9L5LMpPk8DR |
||||
RGHHOe4OuO6WTkUzjbjuKyiQbmtcp00R4dULbSM57ESvI/Ny0gPt+J/QKAOG8S5t |
||||
09wDpKxKcgZSZ6Nd6FaK+D+ZhUVAkP3hB0ba0wo1JZff/0e4B+VJhXTjl7RRHfbr |
||||
AEuDYFxv9T3K/Jq04wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJys1pnYvO+u8Wca |
||||
6xUToGMpqTnImKa+dX8tMKsp6mXAN/dWrOVMDWnjBhQxShhAZBsaJ4iUeXPJlctw |
||||
KzkUCQo6BsUbPMTSQlPuyHHdZBOTHDIW4SylKaBQvkundkhhBO7aHwFV3QjxZKcH |
||||
XqpGyY2ryrgdj2D4+H55NDXYjj/m |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQIwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIJfmyeyPe6g3+16+WsGB8LRMW |
||||
zfMXKKjxsBd3Zu2ka7jvfKe4ockw87kY01k0G4NHJgWH5zO2OuCNDOa8z+GLqSSO |
||||
LYoMvik9+BLgFR8zBPshy77Rpb3CtpDjJUAU8TWQOT0cC56IwEgj2zswctqKIeFg |
||||
ogkTbfg5KTNKSd4VUwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAIHyYzFTIvvrUFFD |
||||
yxhU3xyH6nx7HC47fxN+1kQjDa4MjvNsm/dOKETvS4b6GUKOudEKENBHzJW08hhs |
||||
vn8uvmWEmyYcUyhp9r5lH2oaa6fySbnc+PE8YD2WNe+et1OdIMwqVwOegCeI85FN |
||||
UtZk2tJjiRXJxBlheaaBxrzYjOBO |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,12 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIBxzCCATACAQIwDQYJKoZIhvcNAQEFBQAwQjFAMD4GA1UEAww3VGVzdCBDQSBm |
||||
b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IGNsaWVudCBjZXJ0czAe |
||||
Fw0xNDEyMDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBYxFDASBgNVBAMMC3NzbHRl |
||||
c3R1c2VyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDg8LJSdf9nhkMSYmhn |
||||
+F3yqVSu+UXTcmPejKTBZRd4moLL2ti41K3M2xZDiZOn8V7To9AAD/tN3lPkn2y4 |
||||
ZqKD+zChVPJ5yUSpenVxKRckyK2pO4aNItgt60YJp119IG7mH/nfobl6nraI3xxk |
||||
WGyT7O2sOOpokW9fF4DJfLe6lQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAMTRz+Nl |
||||
hJeym72oGRIiJ7ODsIS4cVRQ13TwEtV/wPZ+skc/V7RFfHro5hyRwkbfIoZvhCld |
||||
ZkyAXhQyiru0JzoklfEbOtwuC+J+XvXQ7aupIrnGRHF0yyEIYAEhgSRzaUvKWKlB |
||||
gttm9tKwJuVCBYHh+cCGU0LnR3jhxVUqaL9d |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXgIBAAKBgQDg8LJSdf9nhkMSYmhn+F3yqVSu+UXTcmPejKTBZRd4moLL2ti4 |
||||
1K3M2xZDiZOn8V7To9AAD/tN3lPkn2y4ZqKD+zChVPJ5yUSpenVxKRckyK2pO4aN |
||||
Itgt60YJp119IG7mH/nfobl6nraI3xxkWGyT7O2sOOpokW9fF4DJfLe6lQIDAQAB |
||||
AoGBAKh3PGaL3zPuly8eqqkrl1kVPsopAQXCx083MHFzP+fgeJMqnWOYTW5+qyb7 |
||||
061VFbsWFcLmNUV1fIleaTOWEqG0BXkG8VgS0sxEEV6N4sR6ePK2tOA81ZxFhXOR |
||||
bJx8oys2U0kZZVRLvuj5+KjLMSBwWHEIpobE+zz4F9xcTXjlAkEA/6O0yApJ7sBQ |
||||
XS54tK3m7NCYU8yEUD3Yidg9SmaYjiNwhLZ2e9KreQEkcbiHR8R0FHUxzKb/dItt |
||||
2SauaHpCzwJBAOFB6DF0KM0XsfK209LoGvcA6t/aazOtbBlq9I49siKBE74Z7wJu |
||||
0xsH8ndCkBPatoSn2ZuuXv3ozGNU9J+JFVsCQQDAOdk2koYFgZbseoVJV3rNmAzy |
||||
9laH//lTrcZoq70LJJr3MDzn3wIRe0psONWAobinqXhI60or2KxBHVUIOucBAkEA |
||||
qfDSHzU2bvx4aNeb2Vr4tO7BRB8Bj5w/mLGDTSiokrV00o+4LMq1g4gsWeMi1YfE |
||||
+TG0z2nvCnoucKYwY4fFTwJAbW0FLKUzRvX8dM3nXxs8vGktH8TH+dqsUfrZt9ms |
||||
2nF1wwAD2OUXf94dnRvlgSMC7RMbTPAeoHnkqCpb1w++lg== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,9 @@ |
||||
-----BEGIN X509 CRL----- |
||||
MIIBHTCBhzANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ |
||||
b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRzFw0xNDEy |
||||
MDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBQwEgIBAhcNMTQxMjA0MTE1MjAxWjAN |
||||
BgkqhkiG9w0BAQUFAAOBgQDGZTiMkukrcJheXCzKlNKKTyteOmR/sQYj36nyyV2U |
||||
Iac9gYSYAb8ecjUrtcL/innhDAupGUxGR3QltSPo6q1yn9L8BJWJIz+BqK6aV4fb |
||||
3lqGtTQKr+8qaKC7mi5TBafJmkUiNsbclNZl/ooQPW+Gzm++JpunK4uGzdW+4I6/ |
||||
fQ== |
||||
-----END X509 CRL----- |
@ -0,0 +1,12 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIBxzCCATACAQEwDQYJKoZIhvcNAQEFBQAwQjFAMD4GA1UEAww3VGVzdCBDQSBm |
||||
b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IGNsaWVudCBjZXJ0czAe |
||||
Fw0xNDEyMDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBYxFDASBgNVBAMMC3NzbHRl |
||||
c3R1c2VyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDErK6Z/Mv8oTKe026e |
||||
SXhtrAeHPVAWM69Sb3zeQb8bnoqusfc0jQhaqvQqq6UYyCPRsH2qAp8B8Cdf93/B |
||||
I5WIKGWcj107fB+dxqeuCS8QHyvO9Ygr9KYHWMKMz4DR+AsWYqoBXxgFjzwDAQB9 |
||||
SZRMRgUyHR+qQRGEXkgMLgwrbQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBACnd/MjL |
||||
pGmAHIdbMKcIqMPmAhnkzyfoPE+V6V/6Fm3f9iwHYr4ivxTMhdTffFFyVMxvCDEw |
||||
a0Hlx/wPPnbvsJLiWCHYzXJsyISarIU+euxUYQY1w2tTkmgITESM1eDq2SOMnvqK |
||||
iLoSyGNPrq2tAWPTyx7il1Q72ZNl6w3w+uY4 |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXgIBAAKBgQDErK6Z/Mv8oTKe026eSXhtrAeHPVAWM69Sb3zeQb8bnoqusfc0 |
||||
jQhaqvQqq6UYyCPRsH2qAp8B8Cdf93/BI5WIKGWcj107fB+dxqeuCS8QHyvO9Ygr |
||||
9KYHWMKMz4DR+AsWYqoBXxgFjzwDAQB9SZRMRgUyHR+qQRGEXkgMLgwrbQIDAQAB |
||||
AoGAbbKLaKRR+sTGgUQY7Py5ySIsyMfwBZIqdeZtVWKCf5s8axgkdBE92aSEr9Ax |
||||
M9Nd9zVjwhHYMrKKo8JeZZG9csrt/XxgHXDbp+6y4lx0SW1XOmOp39K7h9mUmEVj |
||||
XtICn75z4xYvJDG61xjqtrkh0lKaDr87VDJuuIjbcB2RdNkCQQD3A0Jue8hjoKhN |
||||
H/CjtF/zfL/rkY0BO2Ryyp882AsUZu4y6YbAkrUJbySVIEU7oHleZaTJ/tzC7Ifs |
||||
3XNO7iTnAkEAy9SPQNGU0SNkR2/H7x5JdllMOlOZzl+YUMQpDzH08o/u3RnfcFM8 |
||||
72rYJenxLorKpuG5YXTYxRFet4GIhMqOiwJBAOHStgoh2lrSxurzl2FihxIoa6Em |
||||
iP2mWbfkbF4IuWBmlcAv5QTrWt0MIiq/vOu9Uxgs3tHY0eTWr5GqB0AS0eMCQQCw |
||||
S80LlzpMGXxmfTxEicGoZ1wTJrPlV7F6Se/pgKAIHI3RFsu3b4dI3PTO9iTwyIK3 |
||||
DI02ycWjzX5K4fKeSEQ5AkEAr87kSTl5xM9Z9Cew+FX3ICJRbRNChJEsMPgo+2GW |
||||
PVrzAxEMk/zP0vb3Mjf5yYjpCYPF0BCgVRsbmN86DE5bng== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQIwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIJfmyeyPe6g3+16+WsGB8LRMW |
||||
zfMXKKjxsBd3Zu2ka7jvfKe4ockw87kY01k0G4NHJgWH5zO2OuCNDOa8z+GLqSSO |
||||
LYoMvik9+BLgFR8zBPshy77Rpb3CtpDjJUAU8TWQOT0cC56IwEgj2zswctqKIeFg |
||||
ogkTbfg5KTNKSd4VUwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAIHyYzFTIvvrUFFD |
||||
yxhU3xyH6nx7HC47fxN+1kQjDa4MjvNsm/dOKETvS4b6GUKOudEKENBHzJW08hhs |
||||
vn8uvmWEmyYcUyhp9r5lH2oaa6fySbnc+PE8YD2WNe+et1OdIMwqVwOegCeI85FN |
||||
UtZk2tJjiRXJxBlheaaBxrzYjOBO |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXgIBAAKBgQDIJfmyeyPe6g3+16+WsGB8LRMWzfMXKKjxsBd3Zu2ka7jvfKe4 |
||||
ockw87kY01k0G4NHJgWH5zO2OuCNDOa8z+GLqSSOLYoMvik9+BLgFR8zBPshy77R |
||||
pb3CtpDjJUAU8TWQOT0cC56IwEgj2zswctqKIeFgogkTbfg5KTNKSd4VUwIDAQAB |
||||
AoGBALNvsFu+IFuiFKgLsGT1fZr2Qi3ot+5kSopbp74pbhZBaUxzwl451YjoiGJk |
||||
YI3huKEZyk2cDvVp9ZUfIuHVsUsRkUtlMYAWJoxypbLWFw0efa9TNDbsoxGSjs8N |
||||
TCZOqK6VKEbckTd2Mg8vanB+A8PswOPW94es32Y9XKwBaFsJAkEA5WVHtYs8aczd |
||||
uJMuteUkv2R0OFL8wgIgkXRyk0BNJjVYwe/DbvW/J6W2DTsvoeFMZ9U+p2tEX9ab |
||||
ak7RlCFNtwJBAN9cWRfVzKY6P62UZmIdsvDYJNaWaamfZguKx69q0FD1jcjl0C8R |
||||
3w6xCVrGQCPbbQibNTLbIKPC/jrUcu6c9UUCQQDNiNGXeAnJQiXnGvjfQVCLrBX1 |
||||
4WVW71D/Arcl+JcnhOTh31HcOZPski1r7XvgL12mKwrYNuQser0Fo1lkv/JBAkBx |
||||
VOUrz+KP8Xw/8c1lOVaDF9jRPO6OD3/ymU8qtZLPkViIt/rC91lrle5+LZt71ilj |
||||
tYTvsfnEvfrLFOLgKanVAkEAvyofcM5gr7gTiC+XxhjUyDNn2lYwoog+D67E6YvL |
||||
chheY2FNRrqpCi0Zhi8KlUXnp4wtHA6zBW46l1xSxz4lYg== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,17 @@ |
||||
-----BEGIN X509 CRL----- |
||||
MIIBBDBvMA0GCSqGSIb3DQEBBQUAMEAxPjA8BgNVBAMMNVRlc3Qgcm9vdCBDQSBm |
||||
b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IHN1aXRlFw0xNDEyMDQx |
||||
MTUyMDFaFw00MjA0MjExMTUyMDFaMA0GCSqGSIb3DQEBBQUAA4GBAK7EbBLD03t6 |
||||
zv2yRS6ByDg7X9CPbPVReUQ21ntI652lsJ4veAJeSWQXITEjC/mt+VkN8pKH8eEg |
||||
hp0vZmS7zIzL+UdPZkJYokAdmBsmP1ymDvOHd52XssjM1e6d7pNKwk6Z40x6Tpvq |
||||
cStL3sC4tomx+vn7zzSUcS3hwdcHvnwZ |
||||
-----END X509 CRL----- |
||||
-----BEGIN X509 CRL----- |
||||
MIIBHTCBhzANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ |
||||
b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRzFw0xNDEy |
||||
MDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBQwEgIBAhcNMTQxMjA0MTE1MjAxWjAN |
||||
BgkqhkiG9w0BAQUFAAOBgQDGZTiMkukrcJheXCzKlNKKTyteOmR/sQYj36nyyV2U |
||||
Iac9gYSYAb8ecjUrtcL/innhDAupGUxGR3QltSPo6q1yn9L8BJWJIz+BqK6aV4fb |
||||
3lqGtTQKr+8qaKC7mi5TBafJmkUiNsbclNZl/ooQPW+Gzm++JpunK4uGzdW+4I6/ |
||||
fQ== |
||||
-----END X509 CRL----- |
@ -0,0 +1,26 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB9zCCAWACCQD13ziQMRDLGTANBgkqhkiG9w0BAQsFADBAMT4wPAYDVQQDDDVU |
||||
ZXN0IHJvb3QgQ0EgZm9yIFBvc3RncmVTUUwgU1NMIHJlZ3Jlc3Npb24gdGVzdCBz |
||||
dWl0ZTAeFw0xNDEyMDQxMTUyMDFaFw0xNTAxMDMxMTUyMDFaMEAxPjA8BgNVBAMM |
||||
NVRlc3Qgcm9vdCBDQSBmb3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0 |
||||
IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7TLars/P/obbNlsz |
||||
cX/wZFnZ97L4dAiJAE+ZusoTqLalRnPbQEtrPfMA/eL/gjq69ehnPcehMIxnYRAV |
||||
+xqOnMiUacf+6TQBrjrnfCQZkYkngzYajTqhQogdM7sUHtvBvTs1EkjdVznQUN9B |
||||
BRZi6zEvUMkc8/+KaiEKc0zAKQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAAhmmj+R |
||||
XP1+AREKWE33P8AkXTTGkXMvULZSgteHWxbBc08TbxJLTsqDvwp0lY/9nH48Ejx5 |
||||
XYIdDAED9Bwsm50y9u5p5OsO9YqHJfIsC9+Ui3paDHU543Y8CtZC4Ye5OcFn4/lp |
||||
ew5Ix9E0LHJlY+LCfVEKSV0jDP6aMsYETpIe |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQIwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIJfmyeyPe6g3+16+WsGB8LRMW |
||||
zfMXKKjxsBd3Zu2ka7jvfKe4ockw87kY01k0G4NHJgWH5zO2OuCNDOa8z+GLqSSO |
||||
LYoMvik9+BLgFR8zBPshy77Rpb3CtpDjJUAU8TWQOT0cC56IwEgj2zswctqKIeFg |
||||
ogkTbfg5KTNKSd4VUwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAIHyYzFTIvvrUFFD |
||||
yxhU3xyH6nx7HC47fxN+1kQjDa4MjvNsm/dOKETvS4b6GUKOudEKENBHzJW08hhs |
||||
vn8uvmWEmyYcUyhp9r5lH2oaa6fySbnc+PE8YD2WNe+et1OdIMwqVwOegCeI85FN |
||||
UtZk2tJjiRXJxBlheaaBxrzYjOBO |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,17 @@ |
||||
-----BEGIN X509 CRL----- |
||||
MIIBBDBvMA0GCSqGSIb3DQEBBQUAMEAxPjA8BgNVBAMMNVRlc3Qgcm9vdCBDQSBm |
||||
b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IHN1aXRlFw0xNDEyMDQx |
||||
MTUyMDFaFw00MjA0MjExMTUyMDFaMA0GCSqGSIb3DQEBBQUAA4GBAK7EbBLD03t6 |
||||
zv2yRS6ByDg7X9CPbPVReUQ21ntI652lsJ4veAJeSWQXITEjC/mt+VkN8pKH8eEg |
||||
hp0vZmS7zIzL+UdPZkJYokAdmBsmP1ymDvOHd52XssjM1e6d7pNKwk6Z40x6Tpvq |
||||
cStL3sC4tomx+vn7zzSUcS3hwdcHvnwZ |
||||
-----END X509 CRL----- |
||||
-----BEGIN X509 CRL----- |
||||
MIIBHTCBhzANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ |
||||
b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRzFw0xNDEy |
||||
MDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBQwEgIBBhcNMTQxMjA0MTE1MjAxWjAN |
||||
BgkqhkiG9w0BAQUFAAOBgQCmFnFkEt0+Ialw4E+4nIAJWJO9XDE71FdRfX3QChs8 |
||||
ZJtBseaMNeUC1FY1zHOYQhtMy+Uatda6hx/QiyidF2oP5KpWp+R11M554Ifxem3X |
||||
KDQDBQNee+1IIJ7a1kxAUxeSNP+0a3/bmUxI5sbomINnKeIDqDO8d2vmO2VLxJm6 |
||||
MA== |
||||
-----END X509 CRL----- |
@ -0,0 +1,26 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB9zCCAWACCQD13ziQMRDLGTANBgkqhkiG9w0BAQsFADBAMT4wPAYDVQQDDDVU |
||||
ZXN0IHJvb3QgQ0EgZm9yIFBvc3RncmVTUUwgU1NMIHJlZ3Jlc3Npb24gdGVzdCBz |
||||
dWl0ZTAeFw0xNDEyMDQxMTUyMDFaFw0xNTAxMDMxMTUyMDFaMEAxPjA8BgNVBAMM |
||||
NVRlc3Qgcm9vdCBDQSBmb3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0 |
||||
IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7TLars/P/obbNlsz |
||||
cX/wZFnZ97L4dAiJAE+ZusoTqLalRnPbQEtrPfMA/eL/gjq69ehnPcehMIxnYRAV |
||||
+xqOnMiUacf+6TQBrjrnfCQZkYkngzYajTqhQogdM7sUHtvBvTs1EkjdVznQUN9B |
||||
BRZi6zEvUMkc8/+KaiEKc0zAKQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAAhmmj+R |
||||
XP1+AREKWE33P8AkXTTGkXMvULZSgteHWxbBc08TbxJLTsqDvwp0lY/9nH48Ejx5 |
||||
XYIdDAED9Bwsm50y9u5p5OsO9YqHJfIsC9+Ui3paDHU543Y8CtZC4Ye5OcFn4/lp |
||||
ew5Ix9E0LHJlY+LCfVEKSV0jDP6aMsYETpIe |
||||
-----END CERTIFICATE----- |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQEwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC15tOzDBVKaCRDz9L5LMpPk8DR |
||||
RGHHOe4OuO6WTkUzjbjuKyiQbmtcp00R4dULbSM57ESvI/Ny0gPt+J/QKAOG8S5t |
||||
09wDpKxKcgZSZ6Nd6FaK+D+ZhUVAkP3hB0ba0wo1JZff/0e4B+VJhXTjl7RRHfbr |
||||
AEuDYFxv9T3K/Jq04wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJys1pnYvO+u8Wca |
||||
6xUToGMpqTnImKa+dX8tMKsp6mXAN/dWrOVMDWnjBhQxShhAZBsaJ4iUeXPJlctw |
||||
KzkUCQo6BsUbPMTSQlPuyHHdZBOTHDIW4SylKaBQvkundkhhBO7aHwFV3QjxZKcH |
||||
XqpGyY2ryrgdj2D4+H55NDXYjj/m |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,8 @@ |
||||
-----BEGIN X509 CRL----- |
||||
MIIBBDBvMA0GCSqGSIb3DQEBBQUAMEAxPjA8BgNVBAMMNVRlc3Qgcm9vdCBDQSBm |
||||
b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IHN1aXRlFw0xNDEyMDQx |
||||
MTUyMDFaFw00MjA0MjExMTUyMDFaMA0GCSqGSIb3DQEBBQUAA4GBAK7EbBLD03t6 |
||||
zv2yRS6ByDg7X9CPbPVReUQ21ntI652lsJ4veAJeSWQXITEjC/mt+VkN8pKH8eEg |
||||
hp0vZmS7zIzL+UdPZkJYokAdmBsmP1ymDvOHd52XssjM1e6d7pNKwk6Z40x6Tpvq |
||||
cStL3sC4tomx+vn7zzSUcS3hwdcHvnwZ |
||||
-----END X509 CRL----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB9zCCAWACCQD13ziQMRDLGTANBgkqhkiG9w0BAQsFADBAMT4wPAYDVQQDDDVU |
||||
ZXN0IHJvb3QgQ0EgZm9yIFBvc3RncmVTUUwgU1NMIHJlZ3Jlc3Npb24gdGVzdCBz |
||||
dWl0ZTAeFw0xNDEyMDQxMTUyMDFaFw0xNTAxMDMxMTUyMDFaMEAxPjA8BgNVBAMM |
||||
NVRlc3Qgcm9vdCBDQSBmb3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0 |
||||
IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7TLars/P/obbNlsz |
||||
cX/wZFnZ97L4dAiJAE+ZusoTqLalRnPbQEtrPfMA/eL/gjq69ehnPcehMIxnYRAV |
||||
+xqOnMiUacf+6TQBrjrnfCQZkYkngzYajTqhQogdM7sUHtvBvTs1EkjdVznQUN9B |
||||
BRZi6zEvUMkc8/+KaiEKc0zAKQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAAhmmj+R |
||||
XP1+AREKWE33P8AkXTTGkXMvULZSgteHWxbBc08TbxJLTsqDvwp0lY/9nH48Ejx5 |
||||
XYIdDAED9Bwsm50y9u5p5OsO9YqHJfIsC9+Ui3paDHU543Y8CtZC4Ye5OcFn4/lp |
||||
ew5Ix9E0LHJlY+LCfVEKSV0jDP6aMsYETpIe |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICWwIBAAKBgQDC7TLars/P/obbNlszcX/wZFnZ97L4dAiJAE+ZusoTqLalRnPb |
||||
QEtrPfMA/eL/gjq69ehnPcehMIxnYRAV+xqOnMiUacf+6TQBrjrnfCQZkYkngzYa |
||||
jTqhQogdM7sUHtvBvTs1EkjdVznQUN9BBRZi6zEvUMkc8/+KaiEKc0zAKQIDAQAB |
||||
AoGAa1z8kqiQe86Edr9UslwEjOKo/r5IzEIU5WjPbywL25Ikr5nDfHLIV5QygUxV |
||||
uEgBkzKYxCyqBOVZoCM9Ge5JrGcWO+N7IVVpirJRLgafu17sWyOsFIdT0QfNBYEl |
||||
sdcz70c0Rsfk+hnsJ3KDOAxEhmPZe1mT9Rl6g1qpzva1/1ECQQDkxzDyhm8/F41B |
||||
1z9m6Gz8X3fIb4cx1WpMZHG3XNyD5rzPiUhuIqATUHTCGIig0nYzYr1AOVNSN6pb |
||||
5whOuW4VAkEA2h7bIZd3yfn1YNZYk24ORwZssE5r5ryQeOwuDGJH8FxPk/LqZE8T |
||||
OX+ptPRyDowd2UZFRz0jxKl3RR4W/VtixQJAehaK2oI/j+3jpkVWQna64puX8tEB |
||||
1uhLR+U6gl3+GC3kiOR8ULoNrwD6rjIlh52JErcYw9NT0cZ/FXhfiJOQWQJAFr3a |
||||
2RDC05M1K0iN6aky4eLgmC1FAMSuR31Qe8gPehcV0PYlzBmWhosx9YT7E1s2jX3P |
||||
IVNVlF6a6eDuQrIxhQJAL8ELX6MNW05PzETZpYSOTvkOeGND7INc5Md28Yv9SkPd |
||||
c/HvFDVQF0OsgFrIcuBP8o7YaQBETJPqFHMao+WB6w== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIICSTCCAbKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowRjEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMSQwIgYDVQQDDBtjb21tb24tbmFtZS5wZy1z |
||||
c2x0ZXN0LnRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ0ERoXVz7aK |
||||
ZLL2W8psViLKVorl1pvLz4m0Uw0X8iQkHgN+/gMNs2nHDzQFtbOc3NVbBxnnosbF |
||||
XuGeCrlz+xK3J4Y5g6up9xNPCbtLM+RxBtMx/a/8naO+4yraQD51pZgNUMjSYeIL |
||||
9UeB3VFg928+swacichtJIlwU3KAiEzRAgMBAAGjSzBJMEcGA1UdEQRAMD6CHWRu |
||||
czEuYWx0LW5hbWUucGctc3NsdGVzdC50ZXN0gh1kbnMyLmFsdC1uYW1lLnBnLXNz |
||||
bHRlc3QudGVzdDANBgkqhkiG9w0BAQUFAAOBgQBwQP7EuwvnURefrRvLKP+Txzwg |
||||
xEZK/ZG/dSExX7CP8ib5JZQUuJpMzYmyGFbTpLJOU5qrE+vI2rxfHrWOYZU4IB1f |
||||
u053N3slzi5ClKGKZt4y7LM4hupQ13xRfgIpasSJdEI3n/BCmeEdFVBqzKMQJxQe |
||||
tHn3NapFkra7DHe2xQ== |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICWwIBAAKBgQCdBEaF1c+2imSy9lvKbFYiylaK5daby8+JtFMNF/IkJB4Dfv4D |
||||
DbNpxw80BbWznNzVWwcZ56LGxV7hngq5c/sStyeGOYOrqfcTTwm7SzPkcQbTMf2v |
||||
/J2jvuMq2kA+daWYDVDI0mHiC/VHgd1RYPdvPrMGnInIbSSJcFNygIhM0QIDAQAB |
||||
AoGAFVtJhFaqo/d67uSXY5cMuDqxPr84S4STO/Ws/jDtnIDVHECfqCaq6o5KwRat |
||||
ujpxxwtUke9xsnuSBjoK12KxGYoEFCstNJx2L77TvjkxcC85C6aGHWxLWCELqnn3 |
||||
3HmCE4I9i/kltO2YTje12nEWVkntqjvnqpAaFeQQ2vRO9KkCQQDOQo2FT0DX7VI7 |
||||
riSNjspfPQS5ESB1xTlcJL7aBS7iubAkVmRPBGM/UZpLLXacgV2WqUp6swcXculc |
||||
SXyx15zDAkEAwuGxNx+SzoLxHzRi2P64+xCo3O4OOP7Fle0/Uyk+DyS9dFljdZbf |
||||
mh28uKqflF0LRe+J4vKKqSHb3dqLdOrm2wJARAFdd96xmn/85QB9vM6fmtcbf4lO |
||||
EoZ8aw0Sf//FfauLj++MEyF3N6FIJhFPUjq1CL+4dswgQnL4zhzMqDZW0QJAchas |
||||
p8e9K1bvEESb5cthweGj6gsXmnhUdgw5eVb4tObeXuIB3xJffxsPo9CHsdSyx9OP |
||||
FqTFVnSzAfNylxT55wJAICUYlyM6/VVMKb9bAoMz7nqg7N/utGEMijT2AqukQues |
||||
jYm2TNtP033yibtWHjwBPDKL5JxsgDfG2x1LYiG6Kw== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB/DCCAWWgAwIBAgIBAjANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowRjEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMSQwIgYDVQQDDBtjb21tb24tbmFtZS5wZy1z |
||||
c2x0ZXN0LnRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAON0emWfWbLb |
||||
4cSdixPiKiSwwiRbVw371L2t90jVY1ucJc/8YRUrRMhdsKdsP2NuwtFx1Mghspzt |
||||
c/v6Dj/V9raYsHDGKK7OSPDF97GT9xM6yqm3FAY3l0QdP78XhiIZOhTO4fOJkAfQ |
||||
LVhXca2X0krl0jF57/o5in6GHuyhulLPAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEA |
||||
V7NgLA+RVPeWo5/TLsJyEf3tPnvpdq4Dfr/nDNDyWLhfrmny3Nuykfwap8JZHXG7 |
||||
oo+owRzgAXaJnr++5PvCo82Jp+gCNf5foZBx3GWdPsJY8d/0oREhFXhpqLCUUoiO |
||||
2295A+mrgwfXoI+tlFypNb0T9x6qHOQlBUX+o1JBdnw= |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXgIBAAKBgQDjdHpln1my2+HEnYsT4ioksMIkW1cN+9S9rfdI1WNbnCXP/GEV |
||||
K0TIXbCnbD9jbsLRcdTIIbKc7XP7+g4/1fa2mLBwxiiuzkjwxfexk/cTOsqptxQG |
||||
N5dEHT+/F4YiGToUzuHziZAH0C1YV3Gtl9JK5dIxee/6OYp+hh7sobpSzwIDAQAB |
||||
AoGAHzYfiYxZQarcix9XM05InCpJKbYC9x9EbRbPJQZrEOoXYjfulnoOgTQiBodb |
||||
F2jegOEO4ruFB/Wpgb0pcWcJ6Hgqh+GptulX1yWl7XzivvTDN6DO796pyNa581kN |
||||
CrS9Sy0owktidlX5SJiXw2AOV1bNsvUBNapwyBFKsB3+XgECQQD/4yTJEAdRMZw1 |
||||
3czmcmzw+Aq/IBsd3w/GgX6jME02Br3LqnTIelNTPVNqEpy4wb6rNug2Dm79OWwh |
||||
PNr799vPAkEA444gzKEUB7O2N8RnfLD5/n7Gl+P1MGOH0Rk6lxxAJ+Py8Itm1pV/ |
||||
3o9xwi1kguXdd+wqpL+B2gJDCpgSmJDZAQJBAIxbn5XaAOl8eN7jJr1RDoiuxdZI |
||||
Whdsf063QStqFzAHSpwoh55f2szR2qtYQjblrxxjJcRg7mhf0vv4UXXcYukCQQDR |
||||
wqZBewp3vxVtesLaklkgW8S9JwlRva3o9hSoTwZkvx+m1RnLHKxugFQg5q8MatAo |
||||
R69XhqEwUX1zOpOJx5wBAkEAkvuuVdjo4baxildMPWSH/CcYlZs8c7ofs/Y6VkdV |
||||
zIYMoGnGS7CfJbKLkXP7amlp9Gn1xgCPpbRJrik3Nafa9Q== |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIICPzCCAaigAwIBAgIBBDANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowIDEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB |
||||
gQDMaR3uJ4+1P76DaUDWklA4L3Uic0ogorawfGuBO9pFB0w/kV6AAJGwhEy1DTi2 |
||||
neaAraa383F+e0Kpmbp1hXZ8k5DwKe6pHCv+R1RwRMqGrC6nQPM/tRsU97z7ROM8 |
||||
+5QDE64zYtWkJGjQrpXmLC2sHSFIFyrHoi6MIzopKNSCpwIDAQABo2cwZTBjBgNV |
||||
HREEXDBagh1kbnMxLmFsdC1uYW1lLnBnLXNzbHRlc3QudGVzdIIdZG5zMi5hbHQt |
||||
bmFtZS5wZy1zc2x0ZXN0LnRlc3SCGioud2lsZGNhcmQucGctc3NsdGVzdC50ZXN0 |
||||
MA0GCSqGSIb3DQEBBQUAA4GBAG4lVLFuJsXsaeFpZBiudnklH17bAx11X51UsL7r |
||||
oDp1AL2bHZnACqedHyed4n4+4UYezPbLOO5ITFSkIdkXYa5ohTjrwymhVGN9Sxlb |
||||
1fitKKXWenvixOwPVk8g4e1Ev8JDofTPQNIFA7C8IbGunm8J0Pe7jF6KxlknP9A0 |
||||
x0Li |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXAIBAAKBgQDMaR3uJ4+1P76DaUDWklA4L3Uic0ogorawfGuBO9pFB0w/kV6A |
||||
AJGwhEy1DTi2neaAraa383F+e0Kpmbp1hXZ8k5DwKe6pHCv+R1RwRMqGrC6nQPM/ |
||||
tRsU97z7ROM8+5QDE64zYtWkJGjQrpXmLC2sHSFIFyrHoi6MIzopKNSCpwIDAQAB |
||||
AoGBAI+m+/LHeLYO0yt1B60D7D5gE7ifPyQKVctX1RFgZ7eFNm+iEMByJfDgOSwv |
||||
24BzHW+nGfhCrKsPorygHarDnY0TfInIX5OHaOgiJ2z6mQnCmH9nwX+ZAezeVlZR |
||||
3QqdmRJzFRcqVD2cU2nk/DG2MJDpyqyfaBQ+FXHZGX03LWbRAkEA5SpdsgQkOW/S |
||||
/5ENpACEixD9WU2EJjNOymddy64ODy6ug9Xc46nw6Xkn4EI+wmcmrmi65oH+hx+G |
||||
g0k+aQmi2QJBAORYri1cNxupOSdQ7tY6DoPuMKMrV4FmuiF3XJWb2qZoNZLG4Lai |
||||
kLn9A8yWJmKyu6V+tvz/DYRHlA870FDM4X8CQENoE8lB+JnAb7Lmqrl7wYDaTXsQ |
||||
FvfZjapxfyBjIRWMKJ70sBVzLj6ueXE4axdpmfIhMiCNSh3awwko6SeiQvkCQHwx |
||||
LypEiURmGUuk3QFuug5PMezM2d7rPDiPbq+AAL+Y1epqeDVc3VIKplJTJ7VueFhe |
||||
PrADGBrlw0U1xurrQ4kCQCui0QT42Ppey48lvxu5S5+dOvkjF8p7Ml59aRqlcjPm |
||||
2q38zM/AJlrekSclGszy/PjaXeZzFM+aCYKAsk8h7YE= |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,12 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB1jCCAT+gAwIBAgIBBTANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowIDEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB |
||||
gQDXRZ+AOvlbHnupGqPsW4zYOE36wyMgwYnsafRMRkZd9R5GLtqnchIBdA9Lg2VP |
||||
gK0355KTYtsdfdnC1kjflkeY+ZAvpRAMarV9fuE3z5kE3qDh4IsSJ3EyxoH7QwEL |
||||
x01INf7QVEb/7y6s1Cw0GBonXnMel/8kfPBFpJ3+p4rw1wIDAQABMA0GCSqGSIb3 |
||||
DQEBBQUAA4GBAIvauevxaS0gnHu3RivMZp9UZe0r9Ja38CqdFnNUT+Z4MS0fOyWq |
||||
9uz3JO7rdLmBtLEUNX2VNR8jIet9/gfxAO5MTYw+nSQ7Ci39kgSQYkCs4gZVS2TJ |
||||
GeOpfcBipOFkI9O0nElAmNVFDB5j5bY5NfCNAMoD1q/FzovxlcskCOdh |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXwIBAAKBgQDXRZ+AOvlbHnupGqPsW4zYOE36wyMgwYnsafRMRkZd9R5GLtqn |
||||
chIBdA9Lg2VPgK0355KTYtsdfdnC1kjflkeY+ZAvpRAMarV9fuE3z5kE3qDh4IsS |
||||
J3EyxoH7QwELx01INf7QVEb/7y6s1Cw0GBonXnMel/8kfPBFpJ3+p4rw1wIDAQAB |
||||
AoGBAKMdFCBbjzmlvVmC4BZlwDDNaPjLB0D4pQNHvV5WGVd0Nb5EHlWmL1J+mGBF |
||||
bWxyOc4UX5Hh49lS1L+3EnyoKBKzsuPafLLXpVM2ujkkJt8iYenWUDqw1+g6zM97 |
||||
bHaQAa/U6+Mqn+dfcAn4FpYknZ0V4cvKqKw6CzjypkmHeLwxAkEA7F0tiV2nhkzN |
||||
huOifLaxQHkOOBIgaFLGAMLwYHLlwVjPxk6O34+XPMehFQbetL431ZweUdGSY1fX |
||||
jURXR72APQJBAOkn4AuhVWoS3lMWQc58kMCzY4+Xwd6ILKXMhFTZA2iNn7IUVEUe |
||||
F2wjq292lu+tIfH+CdRjgCAC7B4OVaI2EqMCQQCZzHeY7ovXY5pIr05HgEkN/rc1 |
||||
3PWhbFrSnAX1fE3r5XItQ2jMJ47tSaiTGglH6o5CPHeuHYP3iG0FyvZQBAqxAkEA |
||||
izskr81IFG/wE+3WnlgEmQ6HBdi6DQmEn/3hiEmPn3/zPYSmTiAKHKmwVn+a4sWg |
||||
38G0XQCOIo+cMNaejJ99wQJBAINI+vfNR8A3wDsvz9hVpa+yZ4aDOeFETJprGsin |
||||
D0v/xzviq1LPrOCuarioyEpYS47bzIKGSeAtC38VB4tQyEo= |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB/DCCAWWgAwIBAgIBBjANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowRjEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMSQwIgYDVQQDDBtjb21tb24tbmFtZS5wZy1z |
||||
c2x0ZXN0LnRlc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK09F4gQyZP/ |
||||
Z5fbOrLbQySBonwt9Wbb5iAEm5618oDk/YLkl1AQo2eoTabevY7+DwHPMMwR9MSA |
||||
yUlvJ8Gc3MNAOIag0o63NNOZxYIzpqqAElOMPNE/FRlpVJyauGZ7lV/Y34vjtHxu |
||||
4Pmi0jOLNMzUNjlN0rQrz0xaTGQ1rX1bAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEA |
||||
ghgb9HNsSfyX1JMLYlCudOTQ/LuoXeXFsqFxRDAOXCCaSrH9T4lUZayBGNOd8kgZ |
||||
FFHJo4WhZx7sE/foXuax/QGLi/mGrVw2xfJdD9SIQndzdnExoQndb+gvGSH/23s4 |
||||
Oif6jcSMPCLpoTaqVQdyPcw7DI9h26YzZ71IybBxPNE= |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXQIBAAKBgQCtPReIEMmT/2eX2zqy20MkgaJ8LfVm2+YgBJuetfKA5P2C5JdQ |
||||
EKNnqE2m3r2O/g8BzzDMEfTEgMlJbyfBnNzDQDiGoNKOtzTTmcWCM6aqgBJTjDzR |
||||
PxUZaVScmrhme5Vf2N+L47R8buD5otIzizTM1DY5TdK0K89MWkxkNa19WwIDAQAB |
||||
AoGBAJNJ5b/hxgD2nXUXB4kZsrRPI37A9GxHehiu0kDWISBFkOTAxYVlIAj5p0vB |
||||
BRmWF9xJ9AsNGTYY6QpuXzbVzzsqxpzqfrmcbpnEwJPIN74cWSBU3As6SVtkD414 |
||||
TjV3TxJlER87D4Jtk2vWvwjWt2tj7fAe/9B44l211jStT0/BAkEA5oRVIBUrLGhb |
||||
ZCHMFEHfF5BtGYNUa54QDK1cJCmstv3CEfR/g1cHLKgnbXRzbIZ4u54sjY4PhviB |
||||
nCVdr6umbwJBAMBjxj8BOFceswCgse3LdaO5O2YPh/h014iiwrll+XB5ufxq5mOa |
||||
9gaKmE8eUBmuWwcE05xbzSUaBhCTjVNNrdUCQQCvylcIYlxMP0ECuWtiP2GcHL22 |
||||
aRql/yIKKOJNiaJ24klvW98qD+IewhVfOSEUr+++VD9xq9ZXfYeJxk0NvH7tAkAR |
||||
hQR4mFPZGyKR3BBX5z8/OY7/LErlhT5bYvb4iyC77VnScqmoSGQ/FD/qdIg2znnb |
||||
mcTraDC2QDhtKgKko15BAkAxtNExYOsPlW3kuhMRnDV3mB3h1TLghl9rYuHfSM5F |
||||
9D7tpJ8FZa4P7BE5bfI1CPoRJsVVw0rUf1ihaMkUyxfI |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIICBjCCAW+gAwIBAgIBAzANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNl |
||||
cnRzMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVowIDEeMBwGA1UECwwV |
||||
UG9zdGdyZVNRTCB0ZXN0IHN1aXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB |
||||
gQCqGqSv5i36Nk7FDQhRmBXi9M81Ox6YNAm1ha6Wj/MCfOlsCwWFfTFoTf5k1Why |
||||
dB8yDlqGvZ2daf6mfgaui4R9uwVgbrPhhDUArtT1u5PBIqDdS10Z8E8iGStga/HQ |
||||
J4CPlrXltX0ll4EC0EMj6SaF1dsYTMld4O7ipCZ62U7EowIDAQABoy4wLDAqBgNV |
||||
HREEIzAhgh9zaW5nbGUuYWx0LW5hbWUucGctc3NsdGVzdC50ZXN0MA0GCSqGSIb3 |
||||
DQEBBQUAA4GBAC/otQQ0Ie+YqgH53nDvMpZ3Ol8xodOUWneRPI8Wf601Qi8Q4yY5 |
||||
9Gv+iU6ZEidn92y0hYXiHzItl/1K6LvIQM/yuro0j+48M/rdzl1qImSnxy0eGHbA |
||||
3fOvUNt8ymYKsgsAfeqHZmWUidEZ/jF9Y72oER/6ImnmsbjEFtHVFDRL |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXQIBAAKBgQCqGqSv5i36Nk7FDQhRmBXi9M81Ox6YNAm1ha6Wj/MCfOlsCwWF |
||||
fTFoTf5k1WhydB8yDlqGvZ2daf6mfgaui4R9uwVgbrPhhDUArtT1u5PBIqDdS10Z |
||||
8E8iGStga/HQJ4CPlrXltX0ll4EC0EMj6SaF1dsYTMld4O7ipCZ62U7EowIDAQAB |
||||
AoGANPD34psEIkS2vVNyDFsGLM2+k7WjrwE7KFjD3q5MlrCjwXGotUQilXD4xQ86 |
||||
Y6zKbLzU5eyr2ms7yzub/sUDZdBdJkU39NzEAf8dKN/UvhSGSZH1zxRCm1SmDrxZ |
||||
BM3TEEGZUVrcamJF2EldPdbmBo8EiFyuPT7UMObvYt0li6kCQQDUol5X57+6ZGvF |
||||
QrmE/3dz+zxa5fZikiG82mrpS9RiXlSssHbE4z04UARgLCGloqlFIQTsKCHnsK7i |
||||
hTX41FL/AkEAzMvGWthn3QG1cVT8tLhinhAL2C/v9Mjq1SnlWi/9qs28mAtYa926 |
||||
wNv+DwcEOEvamCStj+n3q8LRZ/zxbpliXQJAVq7eoR1z9uuLV75s3QA8VUbdgvzu |
||||
pZ6HLHMqVHM6YOOtxzylHny472UHc6FqEhkuwmTEmfV+ZPKNSQEfUJJWRwJBAK1Z |
||||
p7LqDzCh66Xc3HNUyBUnW/9IxIKdNznsVrk6eiwELik9IUFc1GG/VZP+ynGks4mp |
||||
MkjpML3xEDRHhU2rA/kCQQCzhjCPuiZtPpe7fM/gl78q+TSXu/Rr8e/LYYmHeRbq |
||||
G9ojPe6Kx+toOPrOaaDLbRd6tkmwoLl9eSW/EW/aHwWY |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIICCDCCAXGgAwIBAgIJAJKfiuFnjnPZMA0GCSqGSIb3DQEBCwUAMEYxJDAiBgNV |
||||
BAMMG2NvbW1vbi1uYW1lLnBnLXNzbHRlc3QudGVzdDEeMBwGA1UECwwVUG9zdGdy |
||||
ZVNRTCB0ZXN0IHN1aXRlMB4XDTE0MTIwNDExNTIwMVoXDTQyMDQyMTExNTIwMVow |
||||
RjEkMCIGA1UEAwwbY29tbW9uLW5hbWUucGctc3NsdGVzdC50ZXN0MR4wHAYDVQQL |
||||
DBVQb3N0Z3JlU1FMIHRlc3Qgc3VpdGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ |
||||
AoGBAON0emWfWbLb4cSdixPiKiSwwiRbVw371L2t90jVY1ucJc/8YRUrRMhdsKds |
||||
P2NuwtFx1Mghspztc/v6Dj/V9raYsHDGKK7OSPDF97GT9xM6yqm3FAY3l0QdP78X |
||||
hiIZOhTO4fOJkAfQLVhXca2X0krl0jF57/o5in6GHuyhulLPAgMBAAEwDQYJKoZI |
||||
hvcNAQELBQADgYEAoMiPEDM4EmgyOc6kVRSVa+Q+6Wc+O7WX7LmEZprXyJErQ51H |
||||
X0KWcznjass1YzVeT+hCOyEQWSbEs8W1+b0FZleD6Cng9ZfD10Oz/4nCBy8al7sn |
||||
GlQk0KHYlMOcQDfmFr5CNuoIo77rtapDlVxIhMAxBJKTlYvimbNh3XM9g4U= |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXAIBAAKBgQDHz31rLL10XaTbD+K4UQcrtV+2Jq9C9U65lDk6LtsGVkW3os0P |
||||
b0MtXZEijnPvVDa7Kwq4mvKzTJ/SZwtA6zxSC8gs9gpql3ZSINsrzHC9XNxNbUgZ |
||||
gPGiAq9j8C2kRnTKae3tDsEa54XWZXTFniu0Lbk1lXEeompCZZv4wqaSfwIDAQAB |
||||
AoGADrqV1TOsF4rbnyZRoSKf87HgB05ctwPcNMPfYBGaJaJwazP+B7g87HgsPa7g |
||||
jvDXQ/7NQIRzhZINafYcl0F/5a7tbO6DyCXJzoYYZ4NOb8ng1HBpaBMhcigOeeeZ |
||||
i+KBYDjPzEeVfUOxIADWuh8HuVQWgB2WOdWg2GSuC4MZrXkCQQD3AuKxW7W4PJzP |
||||
ZMY4RpnvFlfUyNWKM/0vMeDv88QUK+LH1MWMSIsYPSBS5sTB8b7lR0kb3IhDkuNP |
||||
MeoiZNIlAkEAzxTj5ITO92RL7JI85Z1WBMPgOjvw5ffQF95GiLUN7My1SB5KJUWX |
||||
pI108sY6oigHNDYjlL8rfsJHoz3MpPaG0wJBAMNOwcXwuMebDXYivWSD1nUoGnyB |
||||
6+5h2yA09SFlgjVc2eydfTHFrk2VD3jdRNgA+Kq7acAg6JFdlGPrGLDnPQ0CQGrs |
||||
X2tMA82LVQSW0ajBn3ugY/PNpWoolaLtW0AVNFZzsJrHQQOTtmP5wkvkfLvjrSyR |
||||
U7fnKZ8u02x/aV44CI8CQCQSiBF1mTqiNUZswX0z8m8KRiYplS9+UdtHqbwo91dw |
||||
BD/KWzZKJjGEbc3RN1MIQUq02cp1ZU3pNU7afALBF4s= |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,9 @@ |
||||
-----BEGIN X509 CRL----- |
||||
MIIBHTCBhzANBgkqhkiG9w0BAQUFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ |
||||
b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRzFw0xNDEy |
||||
MDQxMTUyMDFaFw00MjA0MjExMTUyMDFaMBQwEgIBBhcNMTQxMjA0MTE1MjAxWjAN |
||||
BgkqhkiG9w0BAQUFAAOBgQCmFnFkEt0+Ialw4E+4nIAJWJO9XDE71FdRfX3QChs8 |
||||
ZJtBseaMNeUC1FY1zHOYQhtMy+Uatda6hx/QiyidF2oP5KpWp+R11M554Ifxem3X |
||||
KDQDBQNee+1IIJ7a1kxAUxeSNP+0a3/bmUxI5sbomINnKeIDqDO8d2vmO2VLxJm6 |
||||
MA== |
||||
-----END X509 CRL----- |
@ -0,0 +1,13 @@ |
||||
-----BEGIN CERTIFICATE----- |
||||
MIIB8TCCAVoCAQEwDQYJKoZIhvcNAQEFBQAwQDE+MDwGA1UEAww1VGVzdCByb290 |
||||
IENBIGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc3VpdGUwHhcN |
||||
MTQxMjA0MTE1MjAxWhcNNDIwNDIxMTE1MjAxWjBCMUAwPgYDVQQDDDdUZXN0IENB |
||||
IGZvciBQb3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRz |
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC15tOzDBVKaCRDz9L5LMpPk8DR |
||||
RGHHOe4OuO6WTkUzjbjuKyiQbmtcp00R4dULbSM57ESvI/Ny0gPt+J/QKAOG8S5t |
||||
09wDpKxKcgZSZ6Nd6FaK+D+ZhUVAkP3hB0ba0wo1JZff/0e4B+VJhXTjl7RRHfbr |
||||
AEuDYFxv9T3K/Jq04wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJys1pnYvO+u8Wca |
||||
6xUToGMpqTnImKa+dX8tMKsp6mXAN/dWrOVMDWnjBhQxShhAZBsaJ4iUeXPJlctw |
||||
KzkUCQo6BsUbPMTSQlPuyHHdZBOTHDIW4SylKaBQvkundkhhBO7aHwFV3QjxZKcH |
||||
XqpGyY2ryrgdj2D4+H55NDXYjj/m |
||||
-----END CERTIFICATE----- |
@ -0,0 +1,15 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIICXQIBAAKBgQC15tOzDBVKaCRDz9L5LMpPk8DRRGHHOe4OuO6WTkUzjbjuKyiQ |
||||
bmtcp00R4dULbSM57ESvI/Ny0gPt+J/QKAOG8S5t09wDpKxKcgZSZ6Nd6FaK+D+Z |
||||
hUVAkP3hB0ba0wo1JZff/0e4B+VJhXTjl7RRHfbrAEuDYFxv9T3K/Jq04wIDAQAB |
||||
AoGBAKxkghg7iGYHQu9dpCXw9B/s+R2bgEuPNHWRgNTEg0MzuqNGFeCkNW4PRLSA |
||||
4ic9HNiFeia+nLgiIAVFzzg44/VCvzD8P0EdJo9bRqV+mmm15YBcpV+F3I5RLOuq |
||||
IWuRHyDbt+wsZyzdzPN0ElV3AUmj/0vkfX0xoRwXeGqimBFpAkEA5/PpK0qjvK3z |
||||
hv4lC0nX3bmaKfFFEDRiufK+/WUGMHx8YS55CqjpcbR+xMPAFswWEcBEQnj6zbDm |
||||
a4hEjlwXBwJBAMjCi9UcDe3Sp/mmxFklxmMusIHqldA5YsOyCjtSLxpgHJLdwcMx |
||||
KWH3Q9nUrn4WxhlHhY8W6smNgQDzVk1TgEUCQCd2ef8hjcX2Gm6nIopPH+jbQP1N |
||||
zSA6qWlVgWT/IRRyuX6XN4S2xDDSMpcrbqzyP/b5LSPaDWGdbTZyUqedx1UCQDjA |
||||
/sTVNH7aAZCK+5D0I9xgE5f2mDmQL4KBL3FLr3M2Xn2KYT9sA3Xlb/IBtP6CM6hr |
||||
1q733JH0Bdcd83TSuT0CQQCb4dzfNLuYscHBnQYsMCZvMSKmQZ2LKUANGra/mX+i |
||||
7JZ7wngI548ypMK2lJWnb2Ce+0cR8GAPVHWOTx2srtH4 |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,223 @@ |
||||
use strict; |
||||
use warnings; |
||||
use TestLib; |
||||
use Test::More tests => 38; |
||||
use ServerSetup; |
||||
use File::Copy; |
||||
|
||||
# Like TestLib.pm, we use IPC::Run |
||||
BEGIN |
||||
{ |
||||
eval { |
||||
require IPC::Run; |
||||
import IPC::Run qw(run start); |
||||
1; |
||||
} or do |
||||
{ |
||||
plan skip_all => "IPC::Run not available"; |
||||
} |
||||
} |
||||
|
||||
#### Some configuration |
||||
|
||||
# This is the hostname used to connect to the server. This cannot be a |
||||
# hostname, because the server certificate is always for the domain |
||||
# postgresql-ssl-regression.test. |
||||
my $SERVERHOSTADDR='127.0.0.1'; |
||||
|
||||
my $tempdir = TestLib::tempdir; |
||||
#my $tempdir = "tmp_check"; |
||||
|
||||
|
||||
# Define a couple of helper functions to test connecting to the server. |
||||
|
||||
my $common_connstr; |
||||
|
||||
sub run_test_psql { |
||||
my $connstr = $_[0]; |
||||
my $logstring = $_[1]; |
||||
|
||||
my $cmd = [ 'psql', |
||||
'-A', '-t', |
||||
'-c', "SELECT 'connected with $connstr'", |
||||
'-d', "$connstr" |
||||
]; |
||||
|
||||
open CLIENTLOG, ">>$tempdir/client-log" or die "Could not open client-log file"; |
||||
print CLIENTLOG "\n# Running test: $connstr $logstring\n"; |
||||
close CLIENTLOG; |
||||
|
||||
my $result = run $cmd, '>>', "$tempdir/client-log", '2>&1'; |
||||
return $result; |
||||
} |
||||
|
||||
# |
||||
# The first argument is a (part of a) connection string, and it's also printed |
||||
# out as the test case name. It is appended to $common_connstr global variable, |
||||
# which also contains a libpq connection string. |
||||
# |
||||
# The second argument is a hostname to connect to. |
||||
sub test_connect_ok { |
||||
my $connstr = $_[0]; |
||||
|
||||
my $result = run_test_psql("$common_connstr $connstr", "(should succeed)"); |
||||
ok($result, $connstr); |
||||
} |
||||
|
||||
sub test_connect_fails { |
||||
my $connstr = $_[0]; |
||||
|
||||
my $result = run_test_psql("$common_connstr $connstr", "(should fail)"); |
||||
ok(!$result, "$connstr (should fail)"); |
||||
} |
||||
|
||||
# The client's private key must not be world-readable. Git doesn't track |
||||
# permissions (except for the executable bit), so they might be wrong after |
||||
# a checkout. |
||||
system_or_bail "chmod 0600 ssl/client.key"; |
||||
|
||||
#### Part 0. Set up the server. |
||||
|
||||
diag "setting up data directory in \"$tempdir\"..."; |
||||
start_test_server($tempdir); |
||||
configure_test_server_for_ssl($tempdir); |
||||
switch_server_cert($tempdir, 'server-cn-only'); |
||||
|
||||
### Part 1. Run client-side tests. |
||||
### |
||||
### Test that libpq accepts/rejects the connection correctly, depending |
||||
### on sslmode and whether the server's certificate looks correct. No |
||||
### client certificate is used in these tests. |
||||
|
||||
diag "running client tests..."; |
||||
|
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; |
||||
|
||||
# The server should not accept non-SSL connections |
||||
diag "test that the server doesn't accept non-SSL connections"; |
||||
test_connect_fails("sslmode=disable"); |
||||
|
||||
# Try without a root cert. In sslmode=require, this should work. In verify-ca |
||||
# or verify-full mode it should fail |
||||
diag "connect without server root cert"; |
||||
test_connect_ok ("sslrootcert=invalid sslmode=require"); |
||||
test_connect_fails("sslrootcert=invalid sslmode=verify-ca"); |
||||
test_connect_fails("sslrootcert=invalid sslmode=verify-full"); |
||||
|
||||
# Try with wrong root cert, should fail. (we're using the client CA as the |
||||
# root, but the server's key is signed by the server CA) |
||||
diag "connect without wrong server root cert"; |
||||
test_connect_fails("sslrootcert=ssl/client_ca.crt sslmode=require"); |
||||
test_connect_fails("sslrootcert=ssl/client_ca.crt sslmode=verify-ca"); |
||||
test_connect_fails("sslrootcert=ssl/client_ca.crt sslmode=verify-full"); |
||||
|
||||
# Try with just the server CA's cert. This fails because the root file |
||||
# must contain the whole chain up to the root CA. |
||||
diag "connect with server CA cert, without root CA"; |
||||
test_connect_fails("sslrootcert=ssl/server_ca.crt sslmode=verify-ca"); |
||||
|
||||
# And finally, with the correct root cert. |
||||
diag "connect with correct server CA cert file"; |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=require"); |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca"); |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=verify-full"); |
||||
|
||||
# Test with cert root file that contains two certificates. The client should |
||||
# be able to pick the right one, regardless of the order in the file. |
||||
test_connect_ok ("sslrootcert=ssl/both-cas-1.crt sslmode=verify-ca"); |
||||
test_connect_ok ("sslrootcert=ssl/both-cas-2.crt sslmode=verify-ca"); |
||||
|
||||
diag "testing sslcrl option with a non-revoked cert"; |
||||
|
||||
# Invalid CRL filename is the same as no CRL, succeeds |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=invalid"); |
||||
# A CRL belonging to a different CA is not accepted, fails |
||||
test_connect_fails("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=ssl/client.crl"); |
||||
# With the correct CRL, succeeds (this cert is not revoked) |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=ssl/root+server.crl"); |
||||
|
||||
# Check that connecting with verify-full fails, when the hostname doesn't |
||||
# match the hostname in the server's certificate. |
||||
diag "test mismatch between hostname and server certificate"; |
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; |
||||
|
||||
test_connect_ok ("sslmode=require host=wronghost.test"); |
||||
test_connect_ok ("sslmode=verify-ca host=wronghost.test"); |
||||
test_connect_fails("sslmode=verify-full host=wronghost.test"); |
||||
|
||||
# Test Subject Alternative Names. |
||||
switch_server_cert($tempdir, 'server-multiple-alt-names'); |
||||
|
||||
diag "test hostname matching with X509 Subject Alternative Names"; |
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; |
||||
|
||||
test_connect_ok ("host=dns1.alt-name.pg-ssltest.test"); |
||||
test_connect_ok ("host=dns2.alt-name.pg-ssltest.test"); |
||||
test_connect_ok ("host=foo.wildcard.pg-ssltest.test"); |
||||
|
||||
test_connect_fails("host=wronghost.alt-name.pg-ssltest.test"); |
||||
test_connect_fails("host=deep.subdomain.wildcard.pg-ssltest.test"); |
||||
|
||||
# Test certificate with a single Subject Alternative Name. (this gives a |
||||
# slightly different error message, that's all) |
||||
switch_server_cert($tempdir, 'server-single-alt-name'); |
||||
|
||||
diag "test hostname matching with a single X509 Subject Alternative Name"; |
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; |
||||
|
||||
test_connect_ok ("host=single.alt-name.pg-ssltest.test"); |
||||
|
||||
test_connect_fails("host=wronghost.alt-name.pg-ssltest.test"); |
||||
test_connect_fails("host=deep.subdomain.wildcard.pg-ssltest.test"); |
||||
|
||||
# Test server certificate with a CN and SANs. Per RFCs 2818 and 6125, the CN |
||||
# should be ignored when the certificate has both. |
||||
switch_server_cert($tempdir, 'server-cn-and-alt-names'); |
||||
|
||||
diag "test certificate with both a CN and SANs"; |
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR sslmode=verify-full"; |
||||
|
||||
test_connect_ok ("host=dns1.alt-name.pg-ssltest.test"); |
||||
test_connect_ok ("host=dns2.alt-name.pg-ssltest.test"); |
||||
test_connect_fails("host=common-name.pg-ssltest.test"); |
||||
|
||||
# Finally, test a server certificate that has no CN or SANs. Of course, that's |
||||
# not a very sensible certificate, but libpq should handle it gracefully. |
||||
switch_server_cert($tempdir, 'server-no-names'); |
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid sslrootcert=ssl/root+server_ca.crt hostaddr=$SERVERHOSTADDR"; |
||||
|
||||
test_connect_ok ("sslmode=verify-ca host=common-name.pg-ssltest.test"); |
||||
test_connect_fails("sslmode=verify-full host=common-name.pg-ssltest.test"); |
||||
|
||||
# Test that the CRL works |
||||
diag "Testing client-side CRL"; |
||||
switch_server_cert($tempdir, 'server-revoked'); |
||||
|
||||
$common_connstr="user=ssltestuser dbname=trustdb sslcert=invalid hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; |
||||
|
||||
# Without the CRL, succeeds. With it, fails. |
||||
test_connect_ok ("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca"); |
||||
test_connect_fails("sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=ssl/root+server.crl"); |
||||
|
||||
### Part 2. Server-side tests. |
||||
### |
||||
### Test certificate authorization. |
||||
|
||||
diag "Testing certificate authorization..."; |
||||
$common_connstr="sslrootcert=ssl/root+server_ca.crt sslmode=require dbname=certdb hostaddr=$SERVERHOSTADDR"; |
||||
|
||||
# no client cert |
||||
test_connect_fails("user=ssltestuser sslcert=invalid"); |
||||
|
||||
# correct client cert |
||||
test_connect_ok ("user=ssltestuser sslcert=ssl/client.crt sslkey=ssl/client.key"); |
||||
|
||||
# client cert belonging to another user |
||||
test_connect_fails("user=anotheruser sslcert=ssl/client.crt sslkey=ssl/client.key"); |
||||
|
||||
# revoked client cert |
||||
test_connect_fails("user=ssltestuser sslcert=ssl/client-revoked.crt sslkey=ssl/client-revoked.key"); |
||||
|
||||
|
||||
# All done! Save the log, before the temporary installation is deleted |
||||
copy("$tempdir/client-log", "./client-log"); |
Loading…
Reference in new issue