Browse Source

Use different certificates for client and server

Сергей Прохоров 6 years ago
parent
commit
e976a72644

+ 17 - 9
generate_test_certs.sh

@@ -2,20 +2,28 @@
 # https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CERTIFICATE-CREATION
 # https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CERTIFICATE-CREATION
 
 
 DATADIR=test/data
 DATADIR=test/data
-ROOT_SUBJ="/CN=epgsql CA"
-EPGSQL_SUBJ="/CN=epgsql_test_cert"
+CA_SUBJ="/CN=epgsql CA"
+CLIENT_SUBJ="/CN=epgsql_test_cert"
+SERVER_SUBJ="/CN=epgsql server"
 set -x
 set -x
 
 
 # generate root key
 # generate root key
 openssl genrsa -out ${DATADIR}/root.key 2048
 openssl genrsa -out ${DATADIR}/root.key 2048
 # generate root cert
 # generate root cert
-openssl req -new -x509 -text -days 3650 -key ${DATADIR}/root.key -out ${DATADIR}/root.crt -subj "$ROOT_SUBJ"
+openssl req -new -x509 -text -days 3650 -key ${DATADIR}/root.key -out ${DATADIR}/root.crt -subj "$CA_SUBJ"
 
 
-# generate client/server key
-openssl genrsa -out ${DATADIR}/epgsql.key 2048
-# generate client/server signature request
-openssl req -new -key ${DATADIR}/epgsql.key -out ${DATADIR}/epgsql.csr -subj "$EPGSQL_SUBJ"
-# create signed client/server cert
-openssl x509 -req -text -days 3650 -in ${DATADIR}/epgsql.csr -CA ${DATADIR}/root.crt -CAkey ${DATADIR}/root.key -CAcreateserial -out ${DATADIR}/epgsql.crt
+# generate server key
+openssl genrsa -out ${DATADIR}/server.key 2048
+# generate server signature request
+openssl req -new -key ${DATADIR}/server.key -out ${DATADIR}/server.csr -subj "$SERVER_SUBJ"
+# create signed server cert
+openssl x509 -req -text -days 3650 -in ${DATADIR}/server.csr -CA ${DATADIR}/root.crt -CAkey ${DATADIR}/root.key -CAcreateserial -out ${DATADIR}/server.crt
+
+# generate client key
+openssl genrsa -out ${DATADIR}/client.key 2048
+# generate client signature request
+openssl req -new -key ${DATADIR}/client.key -out ${DATADIR}/client.csr -subj "$CLIENT_SUBJ"
+# create signed client cert
+openssl x509 -req -text -days 3650 -in ${DATADIR}/client.csr -CA ${DATADIR}/root.crt -CAkey ${DATADIR}/root.key -CAcreateserial -out ${DATADIR}/client.crt
 
 
 rm ${DATADIR}/*.{csr,srl}
 rm ${DATADIR}/*.{csr,srl}

+ 52 - 0
test/data/client.crt

@@ -0,0 +1,52 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number:
+            57:18:af:40:a5:9e:d6:44:ff:98:b0:68:8d:15:f9:af:14:e0:8e:c0
+        Signature Algorithm: NULL
+        Issuer: CN = epgsql_test_cert
+        Validity
+            Not Before: Feb 17 04:16:41 2019 GMT
+            Not After : Feb 14 04:16:41 2029 GMT
+        Subject: CN = epgsql_test_cert
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (2048 bit)
+                Modulus:
+                    00:bc:79:66:ea:6b:ef:93:e5:f3:cd:aa:0d:62:57:
+                    d7:fb:a5:2a:62:49:43:13:40:02:11:82:25:b9:cd:
+                    8f:67:48:13:03:2a:a0:3b:30:67:bf:1c:9c:c8:7f:
+                    a5:10:63:c9:37:2b:bf:02:c5:d4:06:c3:63:4a:18:
+                    5d:05:97:64:5e:ff:ec:38:72:d8:84:33:1a:b5:26:
+                    f3:43:50:d2:07:0d:7b:ff:38:0a:60:1f:41:0e:1c:
+                    e3:7f:78:3c:2c:53:ec:0f:4d:e0:06:2b:ab:7f:2e:
+                    7a:8a:51:6e:7d:a3:17:35:0f:8e:b5:cb:c9:8d:af:
+                    6d:8f:ed:2d:ea:fb:c2:08:89:10:2d:98:33:60:4e:
+                    9f:b3:27:11:98:9d:f3:42:2b:73:dd:9c:ec:52:08:
+                    c9:f0:f5:19:96:3c:ff:48:9e:0d:16:ed:59:c3:5a:
+                    46:11:cb:b4:68:e8:70:95:ec:1f:be:f5:e1:a9:4e:
+                    17:95:87:76:2f:e6:90:3d:4a:ae:b0:3c:95:78:fc:
+                    27:81:40:f6:ed:a5:7c:a2:df:a9:fb:a4:77:76:5f:
+                    c9:d0:5c:4f:93:2d:ab:81:48:2f:0e:ae:07:d5:17:
+                    9c:2b:c1:f9:ca:ce:b2:f8:cd:ce:c0:7c:36:23:dc:
+                    1c:e0:7d:04:42:61:3f:ed:d2:cf:85:f8:77:44:ea:
+                    1d:c5
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: NULL
+-----BEGIN CERTIFICATE-----
+MIICtjCCAZ4CFHY6YOsnigyFmdlh+oVOANI9KmmJMA0GCSqGSIb3DQEBCwUAMBQx
+EjAQBgNVBAMMCWVwZ3NxbCBDQTAeFw0xOTAyMTcwNDE2NDFaFw0yOTAyMTQwNDE2
+NDFaMBsxGTAXBgNVBAMMEGVwZ3NxbF90ZXN0X2NlcnQwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQC8eWbqa++T5fPNqg1iV9f7pSpiSUMTQAIRgiW5zY9n
+SBMDKqA7MGe/HJzIf6UQY8k3K78CxdQGw2NKGF0Fl2Re/+w4ctiEMxq1JvNDUNIH
+DXv/OApgH0EOHON/eDwsU+wPTeAGK6t/LnqKUW59oxc1D461y8mNr22P7S3q+8II
+iRAtmDNgTp+zJxGYnfNCK3PdnOxSCMnw9RmWPP9Ing0W7VnDWkYRy7Ro6HCV7B++
+9eGpTheVh3Yv5pA9Sq6wPJV4/CeBQPbtpXyi36n7pHd2X8nQXE+TLauBSC8OrgfV
+F5wrwfnKzrL4zc7AfDYj3BzgfQRCYT/t0s+F+HdE6h3FAgMBAAEwDQYJKoZIhvcN
+AQELBQADggEBAEtXSn7A97ZRa98Ca89JyzNTw9Huj47hP6noDHh4bcwoFcsKbAOI
+7h0/goY78XJSdl1/NLnYRG4Bv+xCWr6LhrYIQXkUtaq+buGIb1sO1PqXLoVU7YtA
+gpd9v9luqBIMi30YT5HHS1nKG/tNTVhqrcs1SfQ05M7KQM8wZPPaZtNm3xz6notH
+rPP/1sfymjKo8mE9EZc4t6sDp1ahT34w8bSdfvqolSllsbh1dGn1jKmGg694517T
+HbwMv4zACqZnR2ed2Ska3FPgL/y3TwlQfxiVHO2Fpomn5b9TOG54W/1pwKnLlKa8
+yTZx7H2jDHvsEaLHqdOytD9B6RlaL3tiDe8=
+-----END CERTIFICATE-----

+ 27 - 0
test/data/client.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAvHlm6mvvk+XzzaoNYlfX+6UqYklDE0ACEYIluc2PZ0gTAyqg
+OzBnvxycyH+lEGPJNyu/AsXUBsNjShhdBZdkXv/sOHLYhDMatSbzQ1DSBw17/zgK
+YB9BDhzjf3g8LFPsD03gBiurfy56ilFufaMXNQ+OtcvJja9tj+0t6vvCCIkQLZgz
+YE6fsycRmJ3zQitz3ZzsUgjJ8PUZljz/SJ4NFu1Zw1pGEcu0aOhwlewfvvXhqU4X
+lYd2L+aQPUqusDyVePwngUD27aV8ot+p+6R3dl/J0FxPky2rgUgvDq4H1RecK8H5
+ys6y+M3OwHw2I9wc4H0EQmE/7dLPhfh3ROodxQIDAQABAoIBAQCih/7cQWBFJpRs
+0yzflelHtVMrlwok25ntB1MJO99iraDXpjavVDrjcAU0Uf9CdwrabPs3pOoHOw+w
+ofn2DGweEIzg0QkuV/O8LG6zqkq0kkhP+z/XTJyJUxhMoJ8jiuuS9xEtwRMPhkFe
+boLeDXrB4zyqQab6bEILT/m9HoZhXHRqF/yER02unfOBHCLWXCvk98Ohqog1XEWL
+81U+xqmIhNtrveI5UTnQkccXXrROVEuqQYj06NpdhZecpeCCAbZSqnUzIEMGsTmI
+CqMU24HI9UIR9NYgdzUhqcpxXsGSPvII9dLrtc2UDzDYyxmt9SnCBJS0Z8VGn1Vp
+81cj8nyBAoGBAPS8uvrX/RHum/ijuug9/khgBjXribzVulIBvhQmzoBPCZgyXrqX
++2p2cnP0yNPBfu3nJUM2C0OxVUurY9i6FEdZi30HQgNtsfYSVZ6lD74QHyuQ19rT
+8ZvFU9rMCPlkTpwhhUcckbY7PVFbQelYbNM62wM5HtVWSqJxOZKTlUMZAoGBAMUl
+1SDHEI2Kp9MBGb5qwFH83+Q3XA4tBSKJBcoFAJiUcI6rA2rm5B1d6DDg9k815uGA
+VB5ucWt8OvaKVuUlRje+kttMp/irG+lOXmZxDxF4/dY4dL8npaHbqsjbvix+u/iz
+ywodZMCKoQvYX2oD889CKxitO2o3/Ss1gEB3q5GNAoGALukmJgLUnWVRPD2WDAIm
+BZVyW0+EnU+SYTm4R4CQwINl4Wh2Q+nx5RxDH/rhq8VBITTXLaTkT9tj8BcwElDI
+pkyBsjt76dBS9knZY4lcFSBd+SnQVj+d5i/SvPOzHKqfbsn2FAVj4LxGKpwFbEbo
+xSxY4qtGP7pEoBJ36KKlT7ECgYAvqi72Rsq8vepHfLuhqyOmbvIetje+gan9KI3K
+wxzaxwDTrYsc/IfohbzOnIVQr2KL4L/1v5QSfa2vz9CkhDeO4LeW59iwqYYNCVKP
+iAQxoEQW1/15/fbwxDBtcZtwHJAL2ERdxK+IUbwQJhcjhaMb2A6dX7y+uJywJrZE
+X+qOPQKBgHnEQsL2MH+vVqblYTkdJRT+suCWhzugJr6lCHMIEyuxT70JFcLBxe0B
+O85WOr0OGMsRguJUr8Zaw4Iy4Inq5p3Egl0fb1tSoMgV0kwa4BZ0EEFL8bO54sm7
+fQfu1BGD+TSh1yvwPEJ/lcGp4kcIfcuhRxdur0euOpeUBuZEp+t/
+-----END RSA PRIVATE KEY-----

+ 0 - 52
test/data/epgsql.crt

@@ -1,52 +0,0 @@
-Certificate:
-    Data:
-        Version: 1 (0x0)
-        Serial Number:
-            34:7d:ee:46:60:3f:66:26:7f:c2:82:b8:00:91:ae:81:c8:9d:d3:92
-        Signature Algorithm: NULL
-        Issuer: CN = epgsql_test_cert
-        Validity
-            Not Before: Feb 17 03:59:45 2019 GMT
-            Not After : Feb 14 03:59:45 2029 GMT
-        Subject: CN = epgsql_test_cert
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-                RSA Public-Key: (2048 bit)
-                Modulus:
-                    00:e6:aa:51:89:cc:d1:51:2f:83:bd:54:9f:70:d1:
-                    8b:44:5d:df:f1:fb:8b:41:2c:1d:ad:82:fd:ac:73:
-                    68:77:85:37:24:8e:00:de:fa:c3:2e:c1:f7:d9:1b:
-                    5e:77:2a:c2:bb:5d:35:fd:16:0c:e1:00:54:d7:9d:
-                    7d:97:b3:b6:03:48:23:36:73:43:9a:d9:95:fe:25:
-                    de:15:74:d5:b0:90:b5:d3:90:13:0e:c4:6d:e0:d2:
-                    74:58:37:c9:57:98:56:c0:09:f7:1c:1e:55:48:2e:
-                    3a:a9:80:dc:fa:d0:61:f2:f4:fc:dd:c4:2d:5f:06:
-                    21:3c:8a:4f:b6:40:b9:b9:5e:df:06:a9:89:a6:04:
-                    79:e9:58:ee:a4:d3:97:f3:c3:30:c2:e6:e0:fc:29:
-                    f4:0f:db:4a:4a:02:77:72:fe:07:21:dc:c6:68:b0:
-                    cf:77:09:6c:62:61:e2:91:e8:c9:fb:cb:47:34:03:
-                    f8:1b:54:d5:22:28:14:e3:bc:b7:9a:32:92:6c:de:
-                    b0:14:2d:56:f6:9c:e3:58:1e:4c:23:79:33:22:e0:
-                    a8:36:24:c7:94:7c:b3:a9:26:4d:c2:44:6f:93:ce:
-                    90:a8:9c:1f:fb:ea:2b:e8:09:fa:2d:82:90:0a:c5:
-                    40:29:f2:4b:6e:03:37:8e:72:6c:01:57:80:2d:15:
-                    d0:cf
-                Exponent: 65537 (0x10001)
-    Signature Algorithm: NULL
------BEGIN CERTIFICATE-----
-MIICtjCCAZ4CFBGhejjyQW27C2G1sCW5QvdZjC+fMA0GCSqGSIb3DQEBCwUAMBQx
-EjAQBgNVBAMMCWVwZ3NxbCBDQTAeFw0xOTAyMTcwMzU5NDVaFw0yOTAyMTQwMzU5
-NDVaMBsxGTAXBgNVBAMMEGVwZ3NxbF90ZXN0X2NlcnQwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDmqlGJzNFRL4O9VJ9w0YtEXd/x+4tBLB2tgv2sc2h3
-hTckjgDe+sMuwffZG153KsK7XTX9FgzhAFTXnX2Xs7YDSCM2c0Oa2ZX+Jd4VdNWw
-kLXTkBMOxG3g0nRYN8lXmFbACfccHlVILjqpgNz60GHy9PzdxC1fBiE8ik+2QLm5
-Xt8GqYmmBHnpWO6k05fzwzDC5uD8KfQP20pKAndy/gch3MZosM93CWxiYeKR6Mn7
-y0c0A/gbVNUiKBTjvLeaMpJs3rAULVb2nONYHkwjeTMi4Kg2JMeUfLOpJk3CRG+T
-zpConB/76ivoCfotgpAKxUAp8ktuAzeOcmwBV4AtFdDPAgMBAAEwDQYJKoZIhvcN
-AQELBQADggEBAGetUizPjbLeedUaPPvzSoYB42RSbzjRqr/3WxLNjmaWQ4oCFzR4
-eUjpjDtrmYpj/qHBlCBaHLgYX6wagf0dfXRBfdw/vI3bW0P6AzDrhEdiDukm3cQY
-skNDpYfgh88VBFGGtV4BAcJPX2GuTYoAOhxkgTT7jjlfA1U53T+IsInBMPkaWHw/
-pQ/8epvRoVGkmMefDx1AseB23xF5+I2l5WwbGyCHkz/gP+6wWS8XOMHnn/xEzDEG
-D3/Cg67xEshkYWPejTTSb9oAvfzrSynO2v7aTkPV6CqTYZ/66uXGPDRH84fUvfcK
-GRQJpMGmkLYobg1CGfgqMgYhxrlOjqdr80E=
------END CERTIFICATE-----

+ 0 - 27
test/data/epgsql.key

@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA5qpRiczRUS+DvVSfcNGLRF3f8fuLQSwdrYL9rHNod4U3JI4A
-3vrDLsH32RtedyrCu101/RYM4QBU1519l7O2A0gjNnNDmtmV/iXeFXTVsJC105AT
-DsRt4NJ0WDfJV5hWwAn3HB5VSC46qYDc+tBh8vT83cQtXwYhPIpPtkC5uV7fBqmJ
-pgR56VjupNOX88Mwwubg/Cn0D9tKSgJ3cv4HIdzGaLDPdwlsYmHikejJ+8tHNAP4
-G1TVIigU47y3mjKSbN6wFC1W9pzjWB5MI3kzIuCoNiTHlHyzqSZNwkRvk86QqJwf
-++or6An6LYKQCsVAKfJLbgM3jnJsAVeALRXQzwIDAQABAoIBAQDXBxM36I2Ap1Ci
-IM75dv3i37gydpIcUSnhZGliZ7uNH8yF8TLyqsVlQ0DvTUpEwMIDtCLuKa4b2hk9
-Xv2De+5DJO5ehhkRs6DV6SscyWujS2OVM4vwikD8AnSfAHJbjBHit+d6ePR7c00Q
-Uqat0bBdsvA/M/Av0yEMtMsWVURNflRMbZdQe1ojnXKhgtIS8XfIq7NfXKxaLDX0
-gFhMGBP/8xuxAR89UT27LjEkq0yfKhtYf4OHZDxGZHlAYUAlbMiA/nD/UD0ER8MC
-nY9zxJwlXmuTN5EbK74MQ9dnAlfGCF9TWIuUfb4mxuZ9aS+gaFDmrO6487Xzx03U
-PBqJhXlhAoGBAPRKSv1ZfuMgFrj/m3gp1cnGshejIgiCJeUW9TpZeZbI0rA3KQYm
-PHFS50VLCZkWrWFj9YhDTzqoNspHgOwrie+lr7f4RbJLLrw9Zxju95NkPLs8Symr
-sxkYflXP8CrXZ4ZX+Cl/R5Kcv+Akrij8AF4aBoZn7qdFkBjUgybjHxiZAoGBAPG4
-1U0cAzXlE0kzlwbqlpOz/kvPtz3yhiMQ0OVAzb4xxaCuZZnntxpm4TuKHYdBH6Fd
-zRGTa3ylvG22dmfm+4LdrmUoT62AJD9yvgelW7gfrRTm/1peGDdl8w0UJ3AR8SMn
-9Bw+w7luZkNqjnAEp22rVIdcPRz6qdEPm1ujFQ2nAoGAa8QmZrNHXYy3WW8xN4ZF
-EJk90V2e0uAPNYu2LMJx+AmpoCEFUPgnK9rluVTL7CPr4o3FMBJ5bifs27lFb2oZ
-lIWkCeVVYbz25gW0aHRq9TN/8x07Dyv2ezip6tMrYMrbmZFPIYdLnKrXnlqwFdZt
-lxWmET7iMhpm4f1Fyi7hdekCgYBSpegInXNbkh+t/72716n0hq6ELVlyDOJgSveh
-6y5twYbZEcgbf2bT2ClaujaucE3oVrIvOECgNerfeGuzyv5kGHfwjn/vysiaCRmA
-c8GQiwQbCYB13YZaKrmX1zRE1V2lr5t/rNYvKNg+ZMie9HhqvxH/1kHvDqXRnYx5
-IKGqMQKBgQC5ci+AvwZ2zTZidjawo4Uirt0qAAdGwSPsZ0bAPlCqhfdIF5MrtVMP
-c2f6lWcNdMUjxB57fCl4/iAJx1y+XNe2aFNSboR7fMahbuVmdA3fDiGhzpTg8P7P
-5lfoLWHdmg7ds1a2rOSnG1vg8dw3y8jYf4BpeoAPjty1IIK8tp9Olw==
------END RSA PRIVATE KEY-----

+ 55 - 55
test/data/root.crt

@@ -2,76 +2,76 @@ Certificate:
     Data:
     Data:
         Version: 3 (0x2)
         Version: 3 (0x2)
         Serial Number:
         Serial Number:
-            0c:a9:bd:1c:41:26:e9:c1:39:48:13:e7:8b:30:f8:17:0a:80:9d:b1
+            7a:3d:30:e0:8a:4f:f3:f9:40:8b:2b:75:e8:33:fa:e4:4a:3b:7c:a8
         Signature Algorithm: sha256WithRSAEncryption
         Signature Algorithm: sha256WithRSAEncryption
         Issuer: CN = epgsql CA
         Issuer: CN = epgsql CA
         Validity
         Validity
-            Not Before: Feb 17 03:59:45 2019 GMT
-            Not After : Feb 14 03:59:45 2029 GMT
+            Not Before: Feb 17 04:16:40 2019 GMT
+            Not After : Feb 14 04:16:40 2029 GMT
         Subject: CN = epgsql CA
         Subject: CN = epgsql CA
         Subject Public Key Info:
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
             Public Key Algorithm: rsaEncryption
                 RSA Public-Key: (2048 bit)
                 RSA Public-Key: (2048 bit)
                 Modulus:
                 Modulus:
-                    00:ec:8f:7a:c9:24:ed:3a:3b:23:01:69:2b:14:01:
-                    62:a6:4f:8f:53:9c:e5:61:59:b8:36:11:ad:c4:00:
-                    8f:e4:01:ff:b9:cf:29:f9:44:aa:30:87:d6:06:69:
-                    21:ec:f4:1c:dc:46:a2:14:af:e5:4a:bf:0f:0b:83:
-                    97:10:5d:f3:2c:c1:3b:07:90:56:5c:d6:dd:9d:17:
-                    20:0b:23:c9:e7:74:cb:3f:2e:c6:9e:6d:65:fc:b6:
-                    2c:4e:cc:96:c9:20:57:60:93:93:19:fa:bf:5f:3e:
-                    29:70:16:c8:38:41:ff:2a:2c:67:9a:19:57:12:20:
-                    24:fc:b0:0e:e3:cf:07:60:d7:ec:9e:43:3b:05:65:
-                    83:cf:58:f7:12:9d:fd:a4:1e:db:ea:99:90:d3:17:
-                    13:b7:68:0c:d6:c2:69:59:85:d2:96:a2:a7:3b:80:
-                    a4:4d:04:cd:c1:91:d5:37:da:30:32:47:90:d8:8c:
-                    3c:02:e4:ef:ba:e4:7d:40:66:63:54:96:1c:5c:2d:
-                    ac:52:38:52:05:38:1c:7d:67:a3:76:94:a5:34:e1:
-                    39:29:f0:90:67:6d:23:e3:0c:f0:22:5f:08:d2:00:
-                    4a:df:87:7c:a2:a8:81:41:a9:5f:33:d5:17:44:d2:
-                    ed:4c:13:c9:13:3b:0c:a3:6e:22:13:ae:ef:57:96:
-                    83:4b
+                    00:a6:f4:7a:8e:90:38:4d:6e:06:00:ca:96:f6:81:
+                    d6:ec:2d:a2:56:8e:4e:72:dc:b7:45:03:d8:b7:e1:
+                    a5:b4:f6:29:94:b8:1d:5e:c9:24:8a:3d:c2:b3:f9:
+                    ae:a2:02:03:d8:94:3b:ef:5b:c1:4b:54:bc:af:a3:
+                    53:2d:84:59:82:11:d1:82:46:5c:7f:3f:65:f9:8e:
+                    ff:50:aa:f9:11:aa:62:cd:d3:8c:6e:a5:e3:c3:d1:
+                    8e:23:5a:b4:63:90:11:fc:11:17:62:a2:46:d5:19:
+                    cf:f0:4c:55:3c:74:8c:6a:d8:34:57:46:5d:e8:6b:
+                    2f:a6:15:a9:4d:a3:dc:48:0b:29:ff:7e:8c:21:4b:
+                    f1:81:fc:62:91:2a:76:42:ad:63:e6:d1:f3:37:cc:
+                    b3:04:99:65:a5:97:47:62:fc:11:fe:d2:38:49:98:
+                    7c:1a:28:5b:25:47:c3:78:b4:48:16:94:db:56:4d:
+                    c1:5a:76:1d:64:f5:af:84:47:96:38:a0:25:08:88:
+                    84:ea:2d:84:aa:d9:80:80:e0:b0:16:de:a2:0e:88:
+                    5a:61:42:50:f1:e4:39:d9:7a:5c:55:26:b8:ae:15:
+                    77:a8:a2:88:2a:2e:2d:de:90:a1:59:34:c3:1c:b9:
+                    ed:3f:b0:95:8c:fc:23:ad:10:31:bc:76:9c:f7:17:
+                    58:f9
                 Exponent: 65537 (0x10001)
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
         X509v3 extensions:
             X509v3 Subject Key Identifier: 
             X509v3 Subject Key Identifier: 
-                A0:EE:8E:BD:E7:E1:1E:DE:4E:96:30:C8:54:D4:A7:FC:12:24:59:4E
+                3C:2E:F9:C6:93:9E:90:CF:F8:81:52:24:C1:7B:D4:C4:E2:8A:43:22
             X509v3 Authority Key Identifier: 
             X509v3 Authority Key Identifier: 
-                keyid:A0:EE:8E:BD:E7:E1:1E:DE:4E:96:30:C8:54:D4:A7:FC:12:24:59:4E
+                keyid:3C:2E:F9:C6:93:9E:90:CF:F8:81:52:24:C1:7B:D4:C4:E2:8A:43:22
 
 
             X509v3 Basic Constraints: critical
             X509v3 Basic Constraints: critical
                 CA:TRUE
                 CA:TRUE
     Signature Algorithm: sha256WithRSAEncryption
     Signature Algorithm: sha256WithRSAEncryption
-         54:72:93:5b:0b:38:a9:4c:de:31:1c:d7:7c:53:da:e5:c4:08:
-         86:e8:77:a1:73:9b:66:e0:94:e8:42:70:68:23:ab:64:19:85:
-         a4:c9:db:63:b5:94:f6:56:02:53:05:6c:be:65:a4:09:13:91:
-         5a:f6:58:ec:fd:88:e7:fe:7b:96:fa:74:8f:ea:b1:3d:43:17:
-         09:7e:54:4e:bf:6a:e8:3b:75:81:0b:12:93:02:e5:8a:22:d0:
-         b8:77:92:60:76:89:ab:41:55:5d:2d:21:b4:89:63:c7:58:d4:
-         aa:dc:af:23:52:b1:39:62:97:7e:39:7f:1c:24:f0:86:6c:d1:
-         9d:26:0d:c5:c9:c5:ae:74:58:c4:96:dc:91:2a:26:e2:cd:ea:
-         b8:50:e4:6b:8d:2c:21:e8:7a:f6:cd:b5:32:ea:34:30:41:71:
-         87:e4:91:9d:13:3c:95:bf:96:e3:7a:73:09:2a:db:15:cb:11:
-         1e:74:18:71:1e:7a:c7:59:c3:86:b9:b3:6a:e4:ba:d6:18:94:
-         96:00:3c:5e:39:43:37:d2:16:06:e0:7d:55:d9:64:cc:75:5c:
-         bb:4f:06:9a:f7:09:47:3e:94:5f:ca:d8:86:e5:3b:5d:05:3a:
-         ee:20:65:c2:29:bd:42:e3:80:b3:2c:dd:6f:ca:9e:df:9a:3b:
-         18:d9:78:3d
+         8c:f8:96:3e:af:f6:fe:34:77:13:8f:c4:7d:1b:51:70:6f:aa:
+         d9:0d:5f:c5:50:6b:b9:86:6c:35:d2:38:18:89:37:9f:75:96:
+         05:8c:7a:20:d0:cc:3c:18:d4:f1:c6:8a:5d:c2:b0:fc:fe:3a:
+         20:dd:71:ea:12:a3:e8:53:06:31:00:75:54:b3:06:69:a8:71:
+         36:e1:9d:e9:9d:1f:be:06:69:ea:03:16:a1:75:c6:bf:34:3d:
+         18:b6:03:b9:c5:63:f7:06:21:e0:16:46:d2:d9:b4:ea:b0:1a:
+         fc:10:95:09:e4:b5:3c:bd:40:d8:c4:3b:2c:57:db:45:c7:ae:
+         6a:8b:40:e6:2c:b1:c3:72:ce:64:10:7d:1e:e4:f7:96:04:38:
+         18:b4:17:7d:4c:44:61:a6:1d:d2:cd:3a:85:c2:2e:0a:39:2c:
+         28:0a:f8:97:88:51:cf:1b:7e:d5:6d:7b:93:5a:30:19:ca:13:
+         34:5a:9d:ee:c1:00:95:63:21:e6:11:21:62:90:0e:8e:c9:8f:
+         18:a4:40:ae:59:f8:ec:dc:7d:a5:6d:91:b2:d1:85:c2:c0:d3:
+         52:3c:f3:fe:f8:27:c8:37:61:be:0e:80:2b:d2:26:1b:4d:75:
+         81:22:9c:ff:21:0c:a0:64:ce:85:d4:0e:60:1e:0b:6d:04:a8:
+         60:30:2b:5f
 -----BEGIN CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIDCTCCAfGgAwIBAgIUDKm9HEEm6cE5SBPnizD4FwqAnbEwDQYJKoZIhvcNAQEL
-BQAwFDESMBAGA1UEAwwJZXBnc3FsIENBMB4XDTE5MDIxNzAzNTk0NVoXDTI5MDIx
-NDAzNTk0NVowFDESMBAGA1UEAwwJZXBnc3FsIENBMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA7I96ySTtOjsjAWkrFAFipk+PU5zlYVm4NhGtxACP5AH/
-uc8p+USqMIfWBmkh7PQc3EaiFK/lSr8PC4OXEF3zLME7B5BWXNbdnRcgCyPJ53TL
-Py7Gnm1l/LYsTsyWySBXYJOTGfq/Xz4pcBbIOEH/KixnmhlXEiAk/LAO488HYNfs
-nkM7BWWDz1j3Ep39pB7b6pmQ0xcTt2gM1sJpWYXSlqKnO4CkTQTNwZHVN9owMkeQ
-2Iw8AuTvuuR9QGZjVJYcXC2sUjhSBTgcfWejdpSlNOE5KfCQZ20j4wzwIl8I0gBK
-34d8oqiBQalfM9UXRNLtTBPJEzsMo24iE67vV5aDSwIDAQABo1MwUTAdBgNVHQ4E
-FgQUoO6OvefhHt5OljDIVNSn/BIkWU4wHwYDVR0jBBgwFoAUoO6OvefhHt5OljDI
-VNSn/BIkWU4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAVHKT
-Wws4qUzeMRzXfFPa5cQIhuh3oXObZuCU6EJwaCOrZBmFpMnbY7WU9lYCUwVsvmWk
-CRORWvZY7P2I5/57lvp0j+qxPUMXCX5UTr9q6Dt1gQsSkwLliiLQuHeSYHaJq0FV
-XS0htIljx1jUqtyvI1KxOWKXfjl/HCTwhmzRnSYNxcnFrnRYxJbckSom4s3quFDk
-a40sIeh69s21Muo0MEFxh+SRnRM8lb+W43pzCSrbFcsRHnQYcR56x1nDhrmzauS6
-1hiUlgA8XjlDN9IWBuB9VdlkzHVcu08GmvcJRz6UX8rYhuU7XQU67iBlwim9QuOA
-syzdb8qe35o7GNl4PQ==
+MIIDCTCCAfGgAwIBAgIUej0w4IpP8/lAiyt16DP65Eo7fKgwDQYJKoZIhvcNAQEL
+BQAwFDESMBAGA1UEAwwJZXBnc3FsIENBMB4XDTE5MDIxNzA0MTY0MFoXDTI5MDIx
+NDA0MTY0MFowFDESMBAGA1UEAwwJZXBnc3FsIENBMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEApvR6jpA4TW4GAMqW9oHW7C2iVo5Octy3RQPYt+GltPYp
+lLgdXskkij3Cs/muogID2JQ771vBS1S8r6NTLYRZghHRgkZcfz9l+Y7/UKr5Eapi
+zdOMbqXjw9GOI1q0Y5AR/BEXYqJG1RnP8ExVPHSMatg0V0Zd6GsvphWpTaPcSAsp
+/36MIUvxgfxikSp2Qq1j5tHzN8yzBJllpZdHYvwR/tI4SZh8GihbJUfDeLRIFpTb
+Vk3BWnYdZPWvhEeWOKAlCIiE6i2EqtmAgOCwFt6iDohaYUJQ8eQ52XpcVSa4rhV3
+qKKIKi4t3pChWTTDHLntP7CVjPwjrRAxvHac9xdY+QIDAQABo1MwUTAdBgNVHQ4E
+FgQUPC75xpOekM/4gVIkwXvUxOKKQyIwHwYDVR0jBBgwFoAUPC75xpOekM/4gVIk
+wXvUxOKKQyIwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAjPiW
+Pq/2/jR3E4/EfRtRcG+q2Q1fxVBruYZsNdI4GIk3n3WWBYx6INDMPBjU8caKXcKw
+/P46IN1x6hKj6FMGMQB1VLMGaahxNuGd6Z0fvgZp6gMWoXXGvzQ9GLYDucVj9wYh
+4BZG0tm06rAa/BCVCeS1PL1A2MQ7LFfbRceuaotA5iyxw3LOZBB9HuT3lgQ4GLQX
+fUxEYaYd0s06hcIuCjksKAr4l4hRzxt+1W17k1owGcoTNFqd7sEAlWMh5hEhYpAO
+jsmPGKRArln47Nx9pW2RstGFwsDTUjzz/vgnyDdhvg6AK9ImG011gSKc/yEMoGTO
+hdQOYB4LbQSoYDArXw==
 -----END CERTIFICATE-----
 -----END CERTIFICATE-----

+ 25 - 25
test/data/root.key

@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----

+ 52 - 0
test/data/server.crt

@@ -0,0 +1,52 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number:
+            0e:9f:3c:e6:3c:ca:ee:bd:d6:81:62:b0:40:50:ee:29:c2:3c:d2:45
+        Signature Algorithm: NULL
+        Issuer: CN = epgsql server
+        Validity
+            Not Before: Feb 17 04:16:40 2019 GMT
+            Not After : Feb 14 04:16:40 2029 GMT
+        Subject: CN = epgsql server
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                RSA Public-Key: (2048 bit)
+                Modulus:
+                    00:ab:77:8d:54:16:e7:50:70:e1:e5:f1:e0:6f:c7:
+                    9d:78:85:be:91:4a:63:41:71:08:de:23:8c:98:44:
+                    8f:cf:75:f9:20:d7:62:95:c2:61:5d:19:78:d3:10:
+                    a5:1c:f0:39:9e:a6:00:b0:98:aa:02:2a:ee:c4:9d:
+                    07:05:3b:c6:35:b5:a4:f5:d2:32:73:d9:62:21:17:
+                    3e:10:2f:e9:e9:06:11:5e:36:43:1f:95:e8:aa:55:
+                    56:6b:ed:32:b6:f1:49:ff:13:42:78:e6:95:4f:c0:
+                    57:77:e0:9f:1c:aa:83:f4:09:fe:af:d3:25:bf:ef:
+                    b6:2d:35:79:b1:47:ed:ae:2b:c8:2f:42:7c:2f:ef:
+                    f3:1b:59:d0:69:b4:76:33:f2:7a:2f:0b:a5:4a:0d:
+                    c9:2d:f8:e3:01:0f:b3:6e:53:c5:a9:32:43:86:1d:
+                    af:73:c7:bd:61:94:dc:58:f9:96:01:6b:26:1e:65:
+                    e5:4d:b8:5b:eb:17:62:a5:29:d9:84:fc:a9:e7:22:
+                    13:ea:23:5b:76:c2:50:b2:d6:4a:29:9f:21:92:57:
+                    79:de:54:e8:9a:86:be:fd:58:5e:9d:9b:90:47:e1:
+                    82:1e:35:73:52:ae:41:9e:96:93:a3:8c:39:3f:35:
+                    b7:61:80:07:35:73:d0:ce:88:46:ea:ae:c4:2a:ba:
+                    2f:97
+                Exponent: 65537 (0x10001)
+    Signature Algorithm: NULL
+-----BEGIN CERTIFICATE-----
+MIICszCCAZsCFHY6YOsnigyFmdlh+oVOANI9KmmIMA0GCSqGSIb3DQEBCwUAMBQx
+EjAQBgNVBAMMCWVwZ3NxbCBDQTAeFw0xOTAyMTcwNDE2NDBaFw0yOTAyMTQwNDE2
+NDBaMBgxFjAUBgNVBAMMDWVwZ3NxbCBzZXJ2ZXIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCrd41UFudQcOHl8eBvx514hb6RSmNBcQjeI4yYRI/Pdfkg
+12KVwmFdGXjTEKUc8DmepgCwmKoCKu7EnQcFO8Y1taT10jJz2WIhFz4QL+npBhFe
+NkMfleiqVVZr7TK28Un/E0J45pVPwFd34J8cqoP0Cf6v0yW/77YtNXmxR+2uK8gv
+Qnwv7/MbWdBptHYz8novC6VKDckt+OMBD7NuU8WpMkOGHa9zx71hlNxY+ZYBayYe
+ZeVNuFvrF2KlKdmE/KnnIhPqI1t2wlCy1kopnyGSV3neVOiahr79WF6dm5BH4YIe
+NXNSrkGelpOjjDk/NbdhgAc1c9DOiEbqrsQqui+XAgMBAAEwDQYJKoZIhvcNAQEL
+BQADggEBABViHTwaK/0W6QgV3ogywia5XQHqvm8tMhFXQD2m+6IcuzHCDq8xu8f1
+n7+V7+c3Nc3jLIg8CuiFtI8oeoxuH/ccLAURDV7Rxgiv7+pqbNqSQzvlvzU/ogGI
+eUITW+fHujoOjoq07gayyZDogFIRjIyMty+YLQWg+9IjxySx8324R7QvM8Tl6EhB
+5AmyOHZPqzl3ZMaZxRWSDYu2ZbzYn9i036Gnuxoyg4bxgz0hOkedOMOffqOOLHCi
+fDjzbqMhy0vhTxGLRIoqE16/kFi5snYD5/y20yAldjGCUSD0BU08AvdC8djYlDpv
+K6dFasYmHFa2E2fifxixS2Dl6YksWq8=
+-----END CERTIFICATE-----

+ 27 - 0
test/data/server.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAq3eNVBbnUHDh5fHgb8edeIW+kUpjQXEI3iOMmESPz3X5INdi
+lcJhXRl40xClHPA5nqYAsJiqAiruxJ0HBTvGNbWk9dIyc9liIRc+EC/p6QYRXjZD
+H5XoqlVWa+0ytvFJ/xNCeOaVT8BXd+CfHKqD9An+r9Mlv++2LTV5sUftrivIL0J8
+L+/zG1nQabR2M/J6LwulSg3JLfjjAQ+zblPFqTJDhh2vc8e9YZTcWPmWAWsmHmXl
+Tbhb6xdipSnZhPyp5yIT6iNbdsJQstZKKZ8hkld53lTomoa+/VhenZuQR+GCHjVz
+Uq5BnpaTo4w5PzW3YYAHNXPQzohG6q7EKrovlwIDAQABAoIBAAbq59TAp8xjAXoZ
+bAiWcQ/vtWR/L8nwGX98x6tM+NBR3h8pEV0hXnQ3FtzNCxxDxM9Vuylkv1cfDEr6
+WtInOzPnhCQ2urpZxs+29FYK2NEB4al/Xu3jSmO01au9AhLHYUjdKg1eoB97jwvT
+EBhD+NbboF7PkfJQZXUldydj0373TEiLfZ8RcOeej0qc9ishNcj4+xWiWOpZWnL+
+Ei/UD0TdSI9zitgeVL5jJzo8BoGJCP9yCPaE1pQURtvq+xDDOehBBcr5j0MPJ7Hx
+zI8ov2DCWbv/cx1+Bckxf75UQMITmV3OtqRaipDXUhISFfg7tvRP4bYXCoKJY6MB
+uImZ70ECgYEA3pjA9U4z7a2kNFEz2FQJiHkpxETEuSP0ZossHDIdMsLa3IhhM4gL
+u80MjsHl02Sq+fz3buHm9bbNyh+bFn56uwu/thcWfVpj9EuVIkbyMILRdUCaTWBP
+1eHyyDfnK7bWKTkkfZsUifF+4LSpkltDt6MNKI3K+9R1a7YQJ8mlAXkCgYEAxTKb
+RAURnYgY3KjwFMOyon3YMO/YgElQUXAHfqbjZLj5iingqtDlwA7tOt2i/I4T+C/a
+3WMfhqXf98bU9ckX8Z5LtJP7/1umhJNC2Y9IAATmNllzbjXYGAuWS6qkmiyzfGOz
+91tPdkiZ7zdLN4NYtcTCEZYolIibXCKsNc//BY8CgYEAzGspoN0dcSMqjeUYoIyk
+aJEkmxqwMnnjYxxh+M7I46nwReB0q1c/t0raQmusfNKQ9ZyrOkf4yyQCnqEh0ql6
+WjWy7C0NuTZ+XoXewii3F3e7lVsrmO1ew8OJKvezswBoclkIutTlKrz9UKx4oXBw
+or75QYndpCD7aFw9P9y9TLkCgYAbj98zuqGjqwoOjW5A+LlXDM/SxzMzewvG1im2
+Ag12XoRCU2gbd+ck2PE/cQr+0bzoy4eDuf8GCtkrAJdzYw/9rWpXavel0WGM1ihZ
+0DT4C7dBkW8Y0F3LvpLbMJahFe5gTG8y+4g3uB4L2Wah87HKdh3J53r0h8NvNUls
+nA3A8QKBgCHe5zbtGI0w/ls2ZMKMm3R7Cobu0CKmhfn8Z2I76x5vyJ1Qig+XvWQM
+BJMFZgwylWY5/qwW26UhV0dYRTuWiDbi40Wz9RWrH4QV554CGTdwrkI8UxXGmVoP
+2jEYBpH7JVql7Cs2hzudJHtvbMTEUq43w1XDMSRzknzdXSryp2vw
+-----END RSA PRIVATE KEY-----

+ 3 - 3
test/epgsql_SUITE.erl

@@ -269,7 +269,7 @@ connect_with_client_cert(Config) ->
     Module = ?config(module, Config),
     Module = ?config(module, Config),
     Dir = filename:join(code:lib_dir(epgsql), ?TEST_DATA_DIR),
     Dir = filename:join(code:lib_dir(epgsql), ?TEST_DATA_DIR),
     File = fun(Name) -> filename:join(Dir, Name) end,
     File = fun(Name) -> filename:join(Dir, Name) end,
-    {ok, Pem} = file:read_file(File("epgsql.crt")),
+    {ok, Pem} = file:read_file(File("client.crt")),
     [{'Certificate', Der, not_encrypted}] = public_key:pem_decode(Pem),
     [{'Certificate', Der, not_encrypted}] = public_key:pem_decode(Pem),
     Cert = public_key:pkix_decode_cert(Der, plain),
     Cert = public_key:pkix_decode_cert(Der, plain),
     #'TBSCertificate'{serialNumber = Serial} = Cert#'Certificate'.tbsCertificate,
     #'TBSCertificate'{serialNumber = Serial} = Cert#'Certificate'.tbsCertificate,
@@ -281,8 +281,8 @@ connect_with_client_cert(Config) ->
              ?assertMatch({ok, _, [{Serial2}]}, Module:equery(C, "select ssl_client_serial()"))
              ?assertMatch({ok, _, [{Serial2}]}, Module:equery(C, "select ssl_client_serial()"))
          end,
          end,
          "epgsql_test_cert",
          "epgsql_test_cert",
-        [{ssl, true}, {ssl_opts, [{keyfile, File("epgsql.key")},
-                                  {certfile, File("epgsql.crt")}]}]).
+        [{ssl, true}, {ssl_opts, [{keyfile, File("client.key")},
+                                  {certfile, File("client.crt")}]}]).
 
 
 connect_map(Config) ->
 connect_map(Config) ->
     {Host, Port} = epgsql_ct:connection_data(Config),
     {Host, Port} = epgsql_ct:connection_data(Config),

+ 2 - 2
test/epgsql_cth.erl

@@ -182,8 +182,8 @@ copy_certs(Config) ->
     PgDataDir = ?config(datadir, Config),
     PgDataDir = ?config(datadir, Config),
 
 
     Files = [
     Files = [
-        {"epgsql.crt", "server.crt", 8#00660},
-        {"epgsql.key", "server.key", 8#00600},
+        {"server.crt", "server.crt", 8#00660},
+        {"server.key", "server.key", 8#00600},
         {"root.crt", "root.crt", 8#00660},
         {"root.crt", "root.crt", 8#00660},
         {"root.key", "root.key", 8#00660}
         {"root.key", "root.key", 8#00660}
     ],
     ],