diff -Puri a/certs/client-cert.pem ../a/certs/client-cert.pem
--- a/certs/client-cert.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/client-cert.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,68 +1,20 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number:
-            d6:d7:e1:b4:b3:30:91:ee
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=IO::Socket::SSL Demo CA
-        Validity
-            Not Before: Jan  1 00:00:01 2008 GMT
-            Not After : Mar 30 06:56:31 2019 GMT
-        Subject: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=client.local
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:d9:49:27:43:41:46:9b:83:d3:22:2a:ed:1f:97:
-                    0c:63:8c:06:3f:4c:0a:74:3e:c3:97:be:27:57:f2:
-                    40:18:40:7c:9d:3f:af:12:be:7c:ec:3f:01:bb:0e:
-                    bd:0b:fd:0d:30:8f:7a:b9:b7:f2:f7:ef:f8:c7:e2:
-                    bf:77:6f:25:26:ab:76:e4:17:4c:3c:e5:c3:29:22:
-                    92:38:de:82:f7:03:9c:3d:f8:08:35:b5:fb:90:57:
-                    05:48:8b:11:00:4d:97:f8:39:07:bb:36:5a:13:df:
-                    a6:15:d3:6c:5a:7f:31:31:39:8e:b0:82:8d:43:ac:
-                    3c:9f:a6:f0:6f:3f:c9:f7:a7
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                A3:81:A9:13:5B:B5:3B:0E:99:0E:EF:09:C4:8C:EA:8B:F5:BD:A8:B0
-            X509v3 Authority Key Identifier: 
-                keyid:DE:65:01:16:19:2E:51:E0:9A:51:1A:37:50:94:7D:39:29:2A:42:2C
-                DirName:/C=DE/ST=Bayern/L=Muenchen/O=Whatever it is/CN=IO::Socket::SSL Demo CA
-                serial:E7:AD:8B:07:55:8A:17:27
-
-            X509v3 Key Usage: 
-                Digital Signature, Non Repudiation, Key Encipherment
-    Signature Algorithm: sha1WithRSAEncryption
-        7f:2b:5f:6b:dd:37:57:df:1c:37:d6:c5:64:d0:51:93:c0:d8:
-        41:dd:60:38:cb:37:dd:c3:4d:94:7c:3d:39:aa:29:38:7b:fe:
-        9a:4d:cc:fc:35:10:0f:1d:f5:5c:f5:1f:fa:c1:eb:b9:5f:40:
-        fc:15:cb:ae:f4:49:93:31:bf:f6:e6:0c:ce:6e:c1:35:b9:12:
-        87:77:52:4f:18:e0:e9:a1:3e:41:ae:9d:59:be:ea:8e:42:1b:
-        4f:3e:1e:99:3a:c0:01:b3:eb:1f:de:0a:01:26:d3:4f:8f:f2:
-        0d:9a:ef:bb:33:b1:5e:46:b9:8d:74:bf:37:aa:2a:71:aa:f4:
-        d9:95
 -----BEGIN CERTIFICATE-----
-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
+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
+nYUPdvG1PjpXxVxdXAGgLuj0nFuLqg==
 -----END CERTIFICATE-----
diff -Puri a/certs/client-key.enc b/certs/client-key.enc
--- a/certs/client-key.enc	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/client-key.enc	2019-04-01 13:56:14.596567182 +0200
@@ -1,18 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,B8D106E5875DEBC3
-
-fdoA/G4J5lNf+F71QaL3bC1BtQqM/tJ+9C+FgYN4ECoV9T5gQZQ7FkACBWuPAbki
-BNKzvKH5TvSdpxUjgQuMtBcQQZEH9931ZjWLnxNEyoSYkvVI7jmdT66bZWOEuJmy
-UojLQG5FTXCqpBlTj59wY2Z1/6sS1rDoWnNcSKGRiOMyjNYr0qrVXjLNX63+j6Ng
-2Sk9j2RhViLzAX+OfdpfgrXwAWt01z+zsa1nJq921vyBsfAHmyMVLUv5W1iQMLEc
-lNxwnTyl31x4AzD9S4GbpGoQoH2TOmVKnXQCcla4qiVSMLRrzJpEDTXk3BvSdXoB
-8RwDpmfN2hhNQuUXBXEsm550ZQ2RzegX7ZJOQ6qYFixctm7t6TdG0x68JzZi7sTY
-kGB2JbgMFVfTdcqrfxHMnq1Wp0+XBbKj+EdSqSVY9D3BjmBFoAmUAVuwWg1gTdVG
-kVoSfQ4BB5CvDEYx9S0t1NHCQoF9DpEX/eOHp7gxitqvYryb9DSn+f28U5crTFRL
-GRRZ8093OBZRZqOmnvCTF3tnamPJnCw10tYCo6rNrnWReZpEPvGpPkAWNDgkfnUU
-///QTfa1zoi1Cmgs2hYRx3k/y2Ttbq1ysalMOZektQ+99Y0kYRcLq2FN7NI4125r
-QfH+HvU/WHKVoksD60RZ1nWvC59n/innWJooFJ+pBqxe6WGabBdT6qXoHIt64JrU
-ZJXmwdnX3Cl2RcVNZ+213PqNEgRZ7/fi8+/qGaEJkzwWJB/yhS+tgYrzNPsaUs9g
-dY5CKbFCuG1K8sWY0kObFRq2uqM4Md7UfKXbi5kDXhnuWO+cyQCCjA==
+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
 -----END RSA PRIVATE KEY-----
diff -Puri a/certs/client-key.pem b/certs/client-key.pem
--- a/certs/client-key.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/client-key.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,15 +1,28 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQDZSSdDQUabg9MiKu0flwxjjAY/TAp0PsOXvidX8kAYQHydP68S
-vnzsPwG7Dr0L/Q0wj3q5t/L37/jH4r93byUmq3bkF0w85cMpIpI43oL3A5w9+Ag1
-tfuQVwVIixEATZf4OQe7NloT36YV02xafzExOY6wgo1DrDyfpvBvP8n3pwIDAQAB
-AoGAVDCM/vke04jrWLTLNc8/5J5PmVzsPAhJntT1x5S8kukBn6gaPKgEHUF4eTMH
-uspsvuEJC0aj5L9dZI2N5EfzW2YZsKx7vWn2A0j+XfQ1CT/p7Qq2ywr6RhmJux9l
-+ChupTvx/jsym7XAJoEsxD8KMjrLddxCPButk/Z7B+nX1uECQQD9qxccaJ1/3T7h
-tzJN7R8SEWAqj5Kc4Sk6oZRMV4Jn6x3jPoML8wkMiORGoeX8c+mJszTo+Ao3Gayz
-4XtYEixRAkEA20hzbJWXvTW3xm3aePbkybLR5mT4c1RcU1h03wzPV3o06V34bahu
-k+JYXEvGzt7b3X1Lbuq+BTRfnhdoPK/+dwJAfQlIawhmGhDEXh4e/apUFmPaMyBx
-9EJIQE5E+xxnezG5mbnGfq1dWIBhhS9oXfgEtYtQGUWqQ160cjZCxjavAQJAMFXi
-C3dWAUEMB1NDqxJREBy4o95x3Yok58JB0MDUG2Y2r5IlJpbP+Q0ViRKy+fqp4EK0
-E/judds7kG98bJQmtQJBAIBkK4fWPkuSwxiLO7jsLUltXe6dzu3oEYYCpJWs7wy5
-BtK/ta3rfXp1zNiu2XdCiccGJhuEB3WbCPBBpmvMye0=
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdufHtIqAkqzuD
+3xpfNtl4+i8LSiMDxetDrWeI0exNUsr5W9GMWn/7SBZyYBRokZa8VtEL7Jw5FhSz
+FQs2qZ2gky9ngvTw+srFYnJLL3GVcWJ/69tRhXinULt2dYJog3eF6VfbJ6LrINHM
+eb/INs7LUe5JYDaCT5E/Jar9Yae0VGpvudziPYq4woxdfnSyD8YbpBBweD+ZGtyV
+0xfleVSYsitjrY+BdXQRUJjAaP+FrYCDqSMmJzUovdB3x7m8lBdDbjV5iaUdm1e1
+n+MFjqG5z8iZ2NshevQ2NsofEZXCvrvXL3gZDsRG7WEDSBU7S1NTzCdv8CED0KwA
+xMRM26kNAgMBAAECggEAS80XBS/yObcEeLfcJzL0NCSr0ps8zzxpitCMdbz2oRSt
+6YPXZrlFyZ1Cd0WblIg5VRgFDaONYQLIftSx6bUg+1V2PlgJ7xx+F+7pDgUhOqrx
+trPmXb9YmTLDc+MGez5+rRwx+e1aCDJHJzV0ODlshxvyb8lhuTkEeechxtAM6lvS
+hIiRpYbrafdPbNG+nBVwHZA1f1FCcCDLiEMUN/G/xucy//bhR3q4vhrFgkxZjecS
+rkN51zLhXp1qKRDX003qlCWLpFxKzDKWL+eziE9xqahhLYREyf2xRHpwGKiw0wEN
+AFFvwyceRePe0p3EDhNHkGE+LLVyq6tQQH+cY6PbDQKBgQD72LIWRYt2ptbQ/LMA
+DxuS2ZJ3fcCnZSe7/51YYINnpTzHfqun2TWszUKlqBxDwhSOTf6WjCzRShkkC5yx
+gzAX7bTHwbcxr68Yf+EX6Z3jnzoer9rlC0Tc0ZwnTuBOuptlgkDz2qjyN/cHdst7
+HrNuKmuYpL0+Ei9UQLQlhvYvEwKBgQDhYhTJuvTo7Tk92bEIo8aqTkeJ/EWoNNOs
+4t8fOTTdARcO3yWzKXdLfV96icXuUkFtdVGbnnXUkf/+K5OmZ4JM8I6SblG5ObCq
+0IjtFwn1ywlDPbGnofr1cb9RgSwtCoQdlf91398jHVK7gooTuHx0OCRNUr0RhsNK
+VpfHpwgrXwKBgQDFlgA6WvuM7l5Q/kENhczTTKGN3/o7GrCu3V+8C5Rsx4XE2kug
+V1i2Jx/nydnLC0SHVQetY3JyDNlmnzmjR1J/I36WzhOFBtmvtfyKfz3hbHXzx3JM
+CqhPOqBxcn+nJN5wKF3/M4ki5+eGUpxYDwElKGDcFDtorGm3h0AOxTD2QwKBgQCg
+0ofa2pjfjEaIJ8n3TEX6SBksEOLzf557gveLJBrgiGKXrgsMqM4DA9cZbS3bPL6L
+CGfPD2cs43EzQIz+9GU52X0iZ63Q6aVyfZL2+rWUuehGHsOhxid49E18LxwCl7pm
+Eh5TUge62rWqLx+vqrjDhTwCIMPgubSoWtm7ESj3KQKBgDGMTl3Nv9NlQiUnzzw3
+iOtjhy5GUC1mFUzZN+Tg0NzCWECXh/szbGSHd344EFVGpLpcvUjkjjcjX0soW1On
+vuTmCvLtpn0rph8s05GYD1+QTi6rn9b7U+QgEn+yZhwUGgBOkYGvegm2xt0IbsJf
+aymLA3ihVdeXcuAlZ6+AMtb4
+-----END PRIVATE KEY-----
diff -Puri a/certs/proxyca.pem b/certs/proxyca.pem
--- a/certs/proxyca.pem	2016-07-14 08:19:45.000000000 +0200
+++ b/certs/proxyca.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,30 +1,48 @@
 -----BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIJAPcrxpCHBqEIMA0GCSqGSIb3DQEBBQUAMEcxCzAJBgNV
-BAYTAkRFMRMwEQYDVQQIDApTb21lLVN0YXRlMSMwIQYDVQQKDBpJTzo6U29ja2V0
-OjpTU0w6OkludGVyY2VwdDAeFw0xMzA1MjkxNzE3MjdaFw0yMzA1MjcxNzE3Mjda
-MEcxCzAJBgNVBAYTAkRFMRMwEQYDVQQIDApTb21lLVN0YXRlMSMwIQYDVQQKDBpJ
-Tzo6U29ja2V0OjpTU0w6OkludGVyY2VwdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEA3tXNX5XOwibRHUyHU2tN1FlI8dYMJtI9L+Si1QFA/DBsEXDJUocDf9SU
-UPacGtEsqRiRaptw3I7QnrggmR+4Id8np5rO9xlucLtQSBvVDZy8Y4hI3kV7Oeup
-14JnfSQj/gVTJNolDUzI0u08ZZiKSS7d5DOw5cOu5F67UAfSOdUCAwEAAaNQME4w
-HQYDVR0OBBYEFBfCIp9KkFUPPix/KFXyTIa7hNN3MB8GA1UdIwQYMBaAFBfCIp9K
-kFUPPix/KFXyTIa7hNN3MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA
-MiF5uUZE4Xm5lUc8Yql1k1eGiVKR9nKpGIwOIUFC0SahiG8wZDkp7v8id0vtu8Pk
-R8tcOLsiKHYMfg49DiByBiMKA7m5+DQL8av4LD5wNJLM5Ha592jhqblVBLeEOCuB
-TfouWu+ieAQO/kAU+WCZLRN5Oc/NnI4fsV6ph5zqSc4=
+MIIDPzCCAiegAwIBAgIFAKtWt0gwDQYJKoZIhvcNAQELBQAwJTEjMCEGA1UEAwwa
+SU86OlNvY2tldDo6U1NMOjpJbnRlcmNlcHQwHhcNMTkwMjI4MTAxNzQ3WhcNMjkw
+MjI1MTAxNzQ3WjAlMSMwIQYDVQQDDBpJTzo6U29ja2V0OjpTU0w6OkludGVyY2Vw
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANJtuM/G85gCbtiKzOU+
+PJk/hsz14eTrNatuAG/7b1bhVH/ZgusneHPELdF+lR4zpHhLSDwcYxKAz3cjJ8dy
+x/Ce6Syvei6C3PHNcSV2lX9hnoAAsBRkWPG0ueCFu9tm2tC0dUtX1wYt7IhkfBxd
+VrN7jyzwq/iRQcG9iXcHW4dwewAZ95VTsSg6+siDgWXI5onhMuYJZLqXf8AdwQGg
+8zYC9SEIffpVAMHmEZrxV6NCc+kjB6imBoUGtMo+w3nFf1J+l7T8oWyjyfGKJfXb
+VD0eN0+eJBkN1B5/9qr2WoDm0YbIgfF40U47c5mc0gkHa0HSAThxXshFZL0TSrsb
+vX8CAwEAAaN2MHQwHQYDVR0OBBYEFOCp6LnKDWb45Vip2nj2MSOKDXbKMB8GA1Ud
+IwQYMBaAFOCp6LnKDWb45Vip2nj2MSOKDXbKMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgKEMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQsFAAOC
+AQEAm7GKiAz9Rf2uIQhhmlBZp+LoZNSawElVS/ZnjrOB9+fWi2ItygjIwS8qMuy3
+yf/HEle8CHU6M6T9pMAk4WuE8hIpH4BKuH1orSxfbWOqsGxQn9/i6YTaEFFK7CJ5
+DihErYp+HdoIqqMu5gg6PsHVytyhox/+hHMyfqoJxGjsyQidhKnM3VnY4gNkVIrI
+Sunp758YGhGzZVcS4scQ5nwdBFdoFSoTNeAeevdul3h2ErO2emZ8j4oBNciTOavW
+/tM8OF2KfolrkS18ytIQ2K6NlL5zEBbi/Qh3SkkOAfg4ku+q9i8NUsP6sxDuq7YC
+tGfaYN73H/elT5ioFHYvpQPwvQ==
 -----END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDe1c1flc7CJtEdTIdTa03UWUjx1gwm0j0v5KLVAUD8MGwRcMlS
-hwN/1JRQ9pwa0SypGJFqm3DcjtCeuCCZH7gh3yenms73GW5wu1BIG9UNnLxjiEje
-RXs566nXgmd9JCP+BVMk2iUNTMjS7TxlmIpJLt3kM7Dlw67kXrtQB9I51QIDAQAB
-AoGAK3Xrnk7rinZjpqE8a4qsHVRko7YpnJC4mlSvZXffItCW4zfqLAxlJFNjsf7H
-J3vQiBJgmjhC5OF90tb6lKLZGHTvUQRLIGOytHKJlO4qHKWvzqDv9R4qQPBnAHeC
-tOUXnxSmvxNrNKHW4talLPn6aqHkQwBeKKq1E85d+NzGnGkCQQDxoUUvI5S8/qFb
-CpaSa3GoDc89r9shnEUzoR24M+oDA3jwtMXy/q8dLtYCX7//PUaScqaOw5APVz8z
-osiBRxC7AkEA7BZjT0RD+1u9KmVZQfiiVCrJoasd2vDhCcAL0KCFEttMjjutaPeA
-QMFZiXwUIZWo/7NdRrD9PiQpmw7FZcm+rwJAVQ+fylNtRgchiGo2zX6zeSS7Ywzo
-SHG5zs4WJ0VnSP5M8ffBg6RywwQ85IMOlOzeTim8Rp/DtBLTtfrFOPVqhwJAB0ix
-i7KJfmnYLkSuOlDXgU1Ip0pGQ4kHCGv6cVdig7Bsbj79HK32MQlGH+3KGTcq3ajF
-CfdP+OjYt8X+5SMSVQJAF1zVY5UOQenILFyRCWpgUwIQZRo3FjfJzMykTb8LqgWc
-nQApujWvWi8qQerxPsAaDLgtfQh3V7ZCZxZRWvuh8A==
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSbbjPxvOYAm7Y
+iszlPjyZP4bM9eHk6zWrbgBv+29W4VR/2YLrJ3hzxC3RfpUeM6R4S0g8HGMSgM93
+IyfHcsfwnuksr3ougtzxzXEldpV/YZ6AALAUZFjxtLnghbvbZtrQtHVLV9cGLeyI
+ZHwcXVaze48s8Kv4kUHBvYl3B1uHcHsAGfeVU7EoOvrIg4FlyOaJ4TLmCWS6l3/A
+HcEBoPM2AvUhCH36VQDB5hGa8VejQnPpIweopgaFBrTKPsN5xX9Sfpe0/KFso8nx
+iiX121Q9HjdPniQZDdQef/aq9lqA5tGGyIHxeNFOO3OZnNIJB2tB0gE4cV7IRWS9
+E0q7G71/AgMBAAECggEBALrDxa8sXpHBPw6UiuzAg1pk5sjNR1Q9auIffOXnHNfY
+oH3k2OzLmH3vVddFaSZoIYbfElq/uzL1/q04F5tPBaRL9prBmEjlvyIh/FWK3X80
+blAfzCgdNFA63msnZyeBL57jO+PGL8N9SR15SiqGsWgVt2rkpU215s4E4pgxgIxA
+rWA1sIQEIhpoB6IWhtR1gaukEb8qzqXVOnChfAlv4ufpLO71RdjyNQTn4H8FsKp7
+LHJXDAmrtYH5TOHH6mQVDwfDCUQJWFHp5uEXC3WQ1Na7HtYNY2zpCJ1RBL39Rymf
+Hpnlum8HCkMPOctSFkqY7bl4om6cKtixDfP7Mm2HIlkCgYEA9P3f41Wb1eAolHeU
+gj64/fFmfh0+xOwMcI1666z3o2+gMRj8dAvf5uey/XlRiaSA/n9UWZT9a44J6/Hh
+0YGDQUmGg3ulCpWiNPVxjAK56Znw4dXogp8n2MaFFTQQnoCpT38r4vAVdCBAp8CJ
+cohfVI3gu55xHYVxN+DHA2wUevUCgYEA2+JFIatRfql2tJgOE+iIsB6qjtCYviUz
+qkR7ok3w8njZ1HgSfwAVa7eTjKgPX9xZM2hN7GyfvZ3AS9J5qokBV8hKNmy+msy7
+pQkh7wiueaAKDVBbBvXWGIoG2fylumvfcjmo7xo9Ozzbk0uozTcQgh1p65R4dfKO
+pLvUijPadiMCgYEAwCA0KvDhA+oFiOD6OuX7Z1KfoPlIV2ASJVYedqIvliEdDEPe
+/xas4UUFDljMw9eZPXwXZyU7U9SRHVKUWBtsFpAViBk4BcPw7/0nrbgZmgOab1C0
+RXOQ6SROC6HIArU9kdVWUmMbP/VnHucUIxilQgb9ncUUSiVy83I4QAvLR90CgYEA
+2B6TMl+v7x3jhee6VokE6I6Lt2mB58qq+FztY/7Vp41vFS2biGZtp309Mk/xJJhw
+uF150bqGW5oU6rGKUjrtLfm4L7w8r+wxNyo9xzMyQmsx1ho4DiRNdbsctt9jiVMD
+wcK4r6KLspDDhQgldub7e9grRpicudlZqMLRSbFjtR8CgYBHVtX7Z4tMku+SZSqx
+NHXnOdJwRxQkY/AR1vd4DNDksjn9xFdmfe413fPrz9zaLEuKATR4cTya+xcljtHy
+HTejXJkKDRWcHTXzPlFw48Y3yF9rNez5Oc90CDQueRdzoY1iCOajtNFsr30+xyh0
+wkFjzGfA8gTIck7+tdlNkBZEew==
+-----END PRIVATE KEY-----
diff -Puri a/certs/server2-cert.pem b/certs/server2-cert.pem
--- a/certs/server2-cert.pem	1970-01-01 01:00:00.000000000 +0100
+++ b/certs/server2-cert.pem	2019-04-01 13:56:14.600567227 +0200
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAiugAwIBAgIFAJsYe0AwDQYJKoZIhvcNAQELBQAwIjEgMB4GA1UEAwwX
+SU86OlNvY2tldDo6U1NMIERlbW8gQ0EwHhcNMTkwMjI4MTAxNzQ3WhcNMjkwMjI1
+MTAxNzQ3WjAYMRYwFAYDVQQDDA1zZXJ2ZXIyLmxvY2FsMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAzesi5RJ9GX47J+oYZx4rH6jvD0nyTs0Xi5U/uXPn
+5IR1d3zgzJ92yQ3rxHKacp5sK6S0NK4fzczVj6gRwPOnmtzqEEcdQ2tPYcsTmd6F
+Mrds0+M7aXV+gsgMpF9NqlBS60l9vlrPNBIpT+tI8czqHtl8VYC6UUFVQvhP3hfM
+sdnu0pQiGVXgrZs6cYRMzNGiSlRnlCmzpQZ5ptjW2z3K9Ru7G+wEGyP1e8w/TVec
+wDjKBWWbxWr882Gmk5s/aPciB4haJtd3rY9OdRU4+noZLwk3ZpNYlwYZFEVckuVb
+joBkOeK7tv6HhbgUKkMnmy5LZLPWRkZFfAZRzebCOQQg4wIDAQABo4GJMIGGMB0G
+A1UdDgQWBBSxWzcaL72oxbMISObFt3GRubTQSDAfBgNVHSMEGDAWgBTvlYEGZsL6
+1zqSG4pNMCxMznhLYTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFoDARBglg
+hkgBhvhCAQEEBAMCBkAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEL
+BQADggEBALultEVCSFO+1mjBVXK9XiR6RCbaLUxoI2FSuSfSRVh3koXhPoMPZ3W9
+VWUxjWK/DUWrUhXiepQ3VD7vEUTB0MVmnJYv/xhQzYV94ny1GB19BX/E5Uv/fpXQ
+nFBGY0nqL/zCzrf1g/FbQCVPxoZ570YAILaxuUyLhPj5O8z7nJb7ZmrAJCSitQxg
+TD3m+1rsKMJqFrhxbGuvGH0kFUO5FUj8YxzP/WPs9WXByIuRgOB46GhrQu1BSe3i
+qyZFR82T22AkmhnLNJMK61sybDj+W1BO5TMKk/R5s2YlFa9ftHI2WdsJJy5eQsCl
+woy6Gfnf9M+yUdDpb4rA/iVlCFSjhjk=
+-----END CERTIFICATE-----
diff -Puri a/certs/server2-key.pem b/certs/server2-key.pem
--- a/certs/server2-key.pem	1970-01-01 01:00:00.000000000 +0100
+++ b/certs/server2-key.pem	2019-04-01 13:56:14.600567227 +0200
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDN6yLlEn0Zfjsn
+6hhnHisfqO8PSfJOzReLlT+5c+fkhHV3fODMn3bJDevEcppynmwrpLQ0rh/NzNWP
+qBHA86ea3OoQRx1Da09hyxOZ3oUyt2zT4ztpdX6CyAykX02qUFLrSX2+Ws80EilP
+60jxzOoe2XxVgLpRQVVC+E/eF8yx2e7SlCIZVeCtmzpxhEzM0aJKVGeUKbOlBnmm
+2NbbPcr1G7sb7AQbI/V7zD9NV5zAOMoFZZvFavzzYaaTmz9o9yIHiFom13etj051
+FTj6ehkvCTdmk1iXBhkURVyS5VuOgGQ54ru2/oeFuBQqQyebLktks9ZGRkV8BlHN
+5sI5BCDjAgMBAAECggEAKAq5VmIqAXMSfch/xk2PhTCMjCSNAdXP5ky3f5CSX1WC
+oiGedSvtJVuXpTPD5NX5ouL8R+I0PQi/3peIHEVFKlAbE99ASYPsg8/BmAI1VI9m
+ki11uCQo3bWY/72olJ3aAfbghMuTz0RY1DmkjaCTRjx0eQv3LyXNNqCip0VpgIvP
+AesUmh8BX+7YFKzlLsXzNf92U638DqJhABi1VwnLjUlyzJRyXIAntDVmDnTvoJTR
+pLmn+puLrmEcK8sb3qbTZOmirm6qwrjDoeSTtTer+HX1JvjT8Zb+WrU/tspDd8P+
+B0cRctr3HXpcUp8np1zIyRJ3wyNFwYP87nd+VhR6QQKBgQDyCciMyScIRBqmGWTx
+kSZI/nAhiLQHqn5Zhe3tUr5nJRSTGVWNxmFWUIo4v+DbEN+oZanX3IBcY9IhvL1P
+3lenRUJbrikJkh2jbcAdwJElGV0qwva+k428WILMViGvnRulSN4GX0uU32I5SMq8
+nuPvhGuWm5w1X0EU+JKfNX1bfQKBgQDZy/elR268JlLwhGBnX3F0sob6nKYMd+lb
+sx+DfeiZLzl0YjiiBfcWUrA475fmYAhAxPNGJ4UY44MX8eEoEthTyyv34ZfoX9Ut
+JQ7tY8kcQfzFMBtWeD4HNIlN8lGwFJkt6+8o2XVb5r9ml6NHqR4pnn1DklZRlUNC
+kb6WIDxb3wKBgDQ+TF2nJZexK5dir9k8nWjwEsAKQ+HLuU4VjI/HZnXZGSHPPBpI
+EcaRx+QL9rsSX1R37Ts8yzAmE7tYg/xzX7QpTPOBGjaIpYEbNXa2lB3P5b5PKvdj
+3hojeMgmZ0sCvG7m1ZXGiAfwV8FJpwkjust+Z8Kwf/09PE0Mgol/ADn5AoGBAJPs
+1OaM/ckMvohdYJzVVlnMZ6EPhDgzuWtu3ZiRi8l/KabCj3R8WLXws3/4O1NdJj3X
+huO/M8cTv5Yj0qlFI2jGNbbGokZR0Jg480qI2681oljLs8WnJXn/VMJ8Mr9FPkTS
+Wj2EdRFWR+mGVH/3fWUHIE0ktzvyBRzRoICWpGhBAoGAHoE4mcfktIfRK1tPo8AI
+VU588g9sTSfIdQGWBBSaT0eD0pam6C8xukRNwtYLGtbNUtzp2lHF9bEgNbFm9YHs
+DQia8qI2iBTEhVngB44ds5mZ3oMyLMGGsYFPnbAk3zJrC0ItassJwMxPcupbxMD1
+yD8R9Z+Ukvt4y4QhLWC7mWQ=
+-----END PRIVATE KEY-----
diff -Puri a/certs/server-cert.pem b/certs/server-cert.pem
--- a/certs/server-cert.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/server-cert.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,68 +1,20 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number:
-            d6:d7:e1:b4:b3:30:91:f0
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=IO::Socket::SSL Demo CA
-        Validity
-            Not Before: Jan  1 00:00:01 2008 GMT
-            Not After : Mar 30 07:05:44 2019 GMT
-        Subject: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=server.local
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:9f:98:73:4b:34:aa:4f:c2:5a:3c:3d:ba:f0:54:
-                    55:e6:d5:8a:a0:8f:e4:94:5a:72:47:34:9a:61:50:
-                    cc:d0:81:8d:37:c4:8e:0c:79:b4:e4:d9:0d:71:06:
-                    3d:07:4d:2a:ff:b5:6a:ef:db:36:f0:be:ed:b2:b0:
-                    2e:18:af:f3:35:92:71:15:84:f5:2a:cb:18:bd:7e:
-                    db:26:18:c1:4e:31:2a:01:b8:1b:c9:a9:df:6c:62:
-                    74:20:49:4d:51:14:93:f4:d6:18:07:f3:3d:d9:f7:
-                    dc:10:33:e4:00:a2:6c:62:b0:59:7e:5f:f9:8e:b6:
-                    a5:af:ad:f6:fb:e6:fa:df:9b
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                BC:81:38:7B:62:C9:DD:A9:BA:5E:9C:44:AA:AE:71:39:7A:81:C9:E8
-            X509v3 Authority Key Identifier: 
-                keyid:DE:65:01:16:19:2E:51:E0:9A:51:1A:37:50:94:7D:39:29:2A:42:2C
-                DirName:/C=DE/ST=Bayern/L=Muenchen/O=Whatever it is/CN=IO::Socket::SSL Demo CA
-                serial:E7:AD:8B:07:55:8A:17:27
-
-            X509v3 Key Usage: 
-                Digital Signature, Non Repudiation, Key Encipherment
-    Signature Algorithm: sha1WithRSAEncryption
-        22:ac:b3:a0:67:eb:c2:40:36:9a:56:71:20:fc:2e:4b:3d:db:
-        b1:83:f3:96:5a:33:9b:db:33:de:52:dc:9c:80:36:78:9b:e3:
-        90:ea:63:cc:0c:ac:0f:bd:01:20:26:8f:47:27:83:23:a9:90:
-        b6:ae:5c:d8:3c:20:27:ca:04:b4:5e:9b:85:fc:34:af:5e:91:
-        60:3b:d2:df:b7:06:ae:e3:01:09:1f:89:af:0a:18:0a:3f:ef:
-        43:d6:3d:6e:16:74:32:b3:06:f0:8a:f4:80:61:f7:f1:83:85:
-        e8:2c:1d:b8:83:f6:81:87:b3:cd:2b:0b:88:1a:f9:3f:15:77:
-        3b:cc
 -----BEGIN CERTIFICATE-----
-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
+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
+XFrv7EP5SZXkSiiZgedvYmT5YS5J
 -----END CERTIFICATE-----
diff -Puri a/certs/server-key.enc b/certs/server-key.enc
--- a/certs/server-key.enc	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/server-key.enc	2019-04-01 13:56:14.596567182 +0200
@@ -1,18 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,B23BC22B9F68A8C3
-
-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
+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
 -----END RSA PRIVATE KEY-----
diff -Puri a/certs/server-key.pem b/certs/server-key.pem
--- a/certs/server-key.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/server-key.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,15 +1,28 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCfmHNLNKpPwlo8PbrwVFXm1Yqgj+SUWnJHNJphUMzQgY03xI4M
-ebTk2Q1xBj0HTSr/tWrv2zbwvu2ysC4Yr/M1knEVhPUqyxi9ftsmGMFOMSoBuBvJ
-qd9sYnQgSU1RFJP01hgH8z3Z99wQM+QAomxisFl+X/mOtqWvrfb75vrfmwIDAQAB
-AoGBAJmJZ7m9U+/hkUANPzAAYpftbi1j4Urb7L8WG0NuIWyihgJVxTa5S88yBZ1r
-nADPO4O/u74/Tg60ECdtGRvFAhtNwQA1DWIqoVat9kaFsXaJDRqalSFVNyJL94C8
-NEDNkBOfL0LNDfbLdekHrsEx16Sk4Cb3+GwPcQlCBj83Oft5AkEA0QXrySU0/+yb
-2M30SOe5m9h5G42RQHJ5wFz7e3NwN9iFd6rIcYAKaJ2vNjN67fYV8TqdCncOL2+2
-ZjkeHIeWpQJBAMN2uh1ma0JRGHBG0zK5IiL5C0tvajoF+cNAgOfl7vf1CtRx5KW9
-x2aOZumfzm9t0NbcutmEjGB0XbZdCNg9CT8CQEbUetHuiccvpqARKnaKD5t//4oW
-ruHn6NoGqDFtLNm/xXqHpOTRPrW0uWrkhwOcIFNeSVkCfwwUDvsU399LEwECQQCc
-GpIBMO6wg/u0j5vUgq6Up7kxgcWgmW0jVrycd7ImLXl8uYkWJT6+1TOzmYFQ1K9Z
-KefAGG/UCJtfLWYG7JgZAkBNooGdD0taYFyfAlxgbjVqNpgubgnpXvh3G4SRbm3J
-itE3l4HvYIrLPQVBzG2fomU+AIH8T9NleyFQNRB0BZay
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwe2a7KhOJ/JZ0
+RJJ6qpaJtGgsPIh3w/e2B/ANHs0x/ThQxME/49aH1Wzom6plqmL+lweQ8FlAFvkG
+NkQRQQsVm0RoKQsxQpMRb8c755gVKcI4d/GAoCHlD9CfPERHbOHbfFMBatvLykCH
+3he1W4k886AHrLPC7vTmlGPhvLwba1w8VaMA6L0LDw/+xUMisHeN0vr2SIbDeLRI
+4Y3snGddNl4/wMO4DY1wD9nxwLHEGXaR0R+4AGXROg3dV/05qOwDJEoKLGEH1T+h
+26Dqw3pl0TlvKV9VPSdG+zpOlkDswjmVijklk9xHBLqyEwxqCSXep9wCeAmPYC3O
+pE7GwKGZAgMBAAECggEAZs7cX7f5Pe8ZLo4rzq3FmF6yOOLilPJiQXaKTvpcivx6
+bALSmQd/GA4qra7RKvyBQtJ0o+h/9afsVcQTDwIXFPUoeo0+aenghs3ZAHq/y8RR
+0ld9JnMii7AU1k5jcEBrqlLYgADiHeuqf/vPT+UNI6bA2PewmKRfoltbfEtYQZfm
+0QOmPYGwcX44oevg0Qgcv74DDwRT5Yh8CBZCETVi20Cvior7Az8JQrtYjVFeRdsi
+0OEzZd5dqHnkJ9cvpHQ30dT82R49/21yPzqPNU4KtDkjE48FwYhTrIbg6wko0Htd
+04gZJqFHN2Izs5Fq329vJEzoh+yrgYSLWG80zRniyQKBgQDnTvLkCiZBXDygkHCO
+IcISqv80/0GzNKQF0rQBddVZTEJfX+ZfnYNyw2fRyzci3niW11152ac7YdjlwF4a
+huww8YUirHvZt5TkFbU701upExnMHdvMTRce1uBH2SIs4HYoiOzsM0fvxYVtv+I6
+f8aNHxvbjeP7/l9AvCPPdRAWOwKBgQDDUjErxZv+icbY8luAXCHd0BLhJFG7vb1L
+vYxxZBmSUeQ+9OsGAvMN4cywQ8KY64vr8g2W4aYiRo9TeOl5XyXzVyo/J/jD8jtG
+7jD//OJFr/oLIcmkkcwQlgOaPiISZqGqhGabQtNxEVwJP+LAm/4F5qqBhBYutBKb
+9PDRhpBmOwKBgBaB1x6bYjeP6xJQm7Mo08KPQv/8Kn9uittKMlvGBHmI8xhms3rw
+T78WBn8if/3zmdZLpHvb0urzTXCltEJuiIMGrUa/c9muhF1hQ15L5aphAmybJy0M
+/0fv7qjvFuU4/iZZlHwzTTemh6IzPqckkcRfl41YlCuMB+a7p9xi7qrLAoGAY3cR
+rza8j8zdxFD3I9DHNkvlsV1ree3P3igywvO0yfyF/UGABdmuqJ0aPZDkIjehU5A6
+N2HF1qKUDm/+hV5c1yTGUM8sMazDXwWhUlsXZ2GMNesI4pOUlcWvI/cMJs64+Trf
+faV0Q5oRgmxULr3BiIPExJvdJ/9vkpgTor+h/U0CgYEAybaavGuNwXVLo6I1dwOn
+VMg07uYL4z/2Mf8/8tl166XH7VnyOAg6sWgBDKEHM6dwf9J2DeKeJdPUh5vuQTz4
+qN0AO6O3rRTV9frXLRdlT3i5+8v0x1i4BmQ8ke/BKhcSW4gTIF+ME1WzFJoGDLsJ
+Kyx9xxt/ecyB60oD9QjsB+s=
+-----END PRIVATE KEY-----
diff -Puri a/certs/server-wildcard.pem b/certs/server-wildcard.pem
--- a/certs/server-wildcard.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/server-wildcard.pem	2019-04-01 13:56:14.596567182 +0200
@@ -1,87 +1,50 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number:
-            d6:d7:e1:b4:b3:30:91:ef
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=IO::Socket::SSL Demo CA
-        Validity
-            Not Before: Jan  1 00:00:01 2008 GMT
-            Not After : Mar 30 06:58:42 2019 GMT
-        Subject: C=DE, ST=Bayern, L=Muenchen, O=Whatever it is, CN=server.local
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:bc:5e:af:1f:ac:1b:72:fd:51:d7:54:0c:77:9d:
-                    15:3b:ef:1a:e4:cd:67:70:5a:d5:16:c2:a1:8d:db:
-                    a8:ee:79:7a:10:4d:55:60:21:15:34:7b:44:d0:8b:
-                    21:05:3a:d3:2c:26:83:6f:0a:f6:1a:3c:69:cb:bf:
-                    25:4b:77:0d:1a:c4:6f:7a:e5:f3:18:4d:d7:c5:65:
-                    d2:90:6a:45:b3:a3:51:73:b8:b1:d2:95:51:bb:73:
-                    0a:85:11:c7:a8:cf:63:8e:24:b8:9a:e3:88:6d:90:
-                    86:ee:ed:97:fd:9a:51:9e:44:9d:b1:c6:3b:92:3a:
-                    d5:30:a0:26:98:e9:17:03:15
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Comment: 
-                OpenSSL Generated Certificate
-            X509v3 Subject Key Identifier: 
-                38:21:43:F0:B2:21:77:17:88:B9:97:49:AE:2B:0A:0E:61:D6:DB:8A
-            X509v3 Authority Key Identifier: 
-                keyid:DE:65:01:16:19:2E:51:E0:9A:51:1A:37:50:94:7D:39:29:2A:42:2C
-                DirName:/C=DE/ST=Bayern/L=Muenchen/O=Whatever it is/CN=IO::Socket::SSL Demo CA
-                serial:E7:AD:8B:07:55:8A:17:27
-
-            X509v3 Key Usage: 
-                Digital Signature, Non Repudiation, Key Encipherment
-            X509v3 Subject Alternative Name: 
-                DNS:*.server.local, IP Address:127.0.0.1, DNS:www*.other.local, DNS:smtp.mydomain.local, DNS:xn--lwe-sna.idntest.local
-    Signature Algorithm: sha1WithRSAEncryption
-        57:e3:6d:aa:00:c3:da:61:ed:75:9a:29:1f:d9:d5:c5:f1:70:
-        f3:c6:00:81:11:95:b4:e1:a3:9d:3a:86:f8:a0:53:42:3b:22:
-        1d:4b:23:97:b6:69:d7:ea:66:49:67:d4:18:e5:cb:5e:1c:c0:
-        6f:4d:42:a6:a9:3f:05:5d:4f:6d:38:e9:c1:ca:94:98:45:e3:
-        eb:7b:c5:96:fb:f6:00:a2:0b:29:63:29:be:77:3a:4d:16:d0:
-        3b:e9:01:0d:95:a6:5c:3f:02:50:23:16:59:a6:26:78:c8:8b:
-        15:6f:48:b6:d1:77:0f:80:bb:99:c3:5a:ce:58:d3:2e:85:5b:
-        57:c3
 -----BEGIN CERTIFICATE-----
-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
+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
+yAQXhhQ7Qr6SSZ/8mmVVd2soSoql+zdNqA==
 -----END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQC8Xq8frBty/VHXVAx3nRU77xrkzWdwWtUWwqGN26jueXoQTVVg
-IRU0e0TQiyEFOtMsJoNvCvYaPGnLvyVLdw0axG965fMYTdfFZdKQakWzo1FzuLHS
-lVG7cwqFEceoz2OOJLia44htkIbu7Zf9mlGeRJ2xxjuSOtUwoCaY6RcDFQIDAQAB
-AoGBALilE4K3YRzBhaTOJX5mgzcBtVoMolV3JCOwW05DwH8qomUyePrG0xNjtdu6
-VX7b374KbpG9q+mhyI7I6pTjuPoRaQmVNdUOU8i5F8Wy0vOZFhDSaJoZpehQPkbk
-f+IqgjAGOQdFXeTMNAeRjUBqfuL5V15uaD9VX/1Xq3pWZyxtAkEA7BVDODOfKTTV
-Zfgmy4u2KdP4a3E2mHm+MwKpvdrxfmpgphpqfuc077f/36BSPN0jpYVw1IvDdy5z
-/iSuw+PIPwJBAMxC8vr7wtlTIDbgQWKZLQ8p9N/DUrTlBTUiJCeMdbrOL3tCJETn
-klaES7gjrgctvU8209T0yv3yTi+kkfInf6sCQGzJ/4fOgfGDHzM1/uqdHvx3aWpZ
-aUcqErN+7qlGUzJl4tOoKJsCACrXJ1ntjvftD5gevbe0EAbDqT/bt40dUhECQBWW
-8fXDTIoJ9jq2o1KXnCKhLafFDmXeWxmNnUKs3vi6uFwP1qON0nLgktxIsSlDFWJd
-CjDVGuuSg98XRvHQaPcCQHSpGVcl7Y42cYprxSgSWXrLXBIIrq6AT9nREzFTPc3/
-TNOdzTyL23tvqYFMzxgA4QK4aLUIdgLlMhx0oXZfaOA=
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDssMPRjcCVrl/P
+Ei6LOqOYV4zenFztIc2OFuHVFrKtN/c7TBS+a2wfxOr4RUVJIO/mIVak1h1rgFOm
+2YKtMOxbcC/yf2V2EYbZ/VcK9JipzVIYkAvNE6zIeGlt4LX8Qr63zWjvx1wiSKBu
+7rBH78BvvyeNwPdY47ZLWo361A6M0jcPlOTddvUq1E2ipNjd3sBf6QWpSeYWT7Cb
+63b2tzEcvDCY5NMt5WyHPlwaoD2ZZr8hxdwSikgcA5HpMtKP3tfKY0zvPSkmXg/0
+UGrMIf3y+lh0OkD7kiEx+UozkbotLUrA+fnxHa86PXqL7oFP9qbwBCMW9VlN1Ggq
+ihQi9/QVAgMBAAECggEBAMF/DMbetMdpQ4gcXBKUgLOFN3OxrsJpdQspJ7w1jyLO
+8v32B6tYVI9wQ4ttzeOn2pdvP88IAAsnYLuxbAQ8T628/GWpwn+QeobxdlxNdBS0
+9t1/vTYNVJ6a2c3q+7vbsODAO35yo56fcxDdbx2QIej5A9P+Iff4SMo3oISjIbX6
+fmsk5ytGDDSWRovKdwcGt+rC7yT78Xj+tpOwbJxWGZV0X/5iCXu9GFaoCL801CK1
+svApTHuVEUVR/yjoIOlE58iix2A+UtgKrFY3mHntE2+mHFFejv/H98nJQFFxQe9g
+d9AqKJa0AEa0+OZDae1gEj0prq241eJFqxDWd6WZfGECgYEA+N8HHgDLCGrcQyEF
+jOHyoDQvJ8l3BVUJ8J7xEHcNY/Hnj6uPKTTHtFq3v+lN4D16ZVtdjGHVFuKifoD/
+i1MNVrqVz0ihujcRFJ+v+48ihna7Z5w4Q4ZxHRtSkNV4SGry63Q5c/CHYDeNHaNN
+V9fcol/oUrMSG+xDMXVXfIvf4QkCgYEA83hqe9bQAKIy2GgrPGZt0d5fen+SZi5N
+/BrutigdQIAHwzAOjRShfJTvxVw3pzBT+MTwfuAQ/b4GUl1aPE2fw12lXRtJZrvS
+sTeHKNMdphGrw4Z7tRhmMQwmDpoeuPIUV4cJSpdYWuBHtpzpxShCKALT/n4pDPuG
+25hh+ZXbGa0CgYAS6jiLQjosMJr/CyJ127JqFK1E094U7KqtvBbMTpAY+YjE9aAS
+3K0U+xQeJOhDU8jarUAF7GWasKzy+nDxsOVBozrBn16TXZ4RuDVS5EUWfS2vKUNp
+dm1gbfQvh9n1fxNpa9L2CeDwIii6iO/W7lQZjzqEFpIYxzMwLh/xGlxwqQKBgQDS
+b8Dx2uCbu5Xg8GB2az3+iIrT8VHTWbBz979d2Fw4NLEA5xecnzlY2c5IMoWzzxS1
+T1ti/j4RY15JcICe4KT3EojsabpOvobEP+9lvNvCf0GL1UA1bapeOFbohhOJ3Urx
+wDiqrRdkLLgvQX7Ytww/Uvpy3A6VNw3/3bzJIdpnXQKBgCH3d1gzLsf8wWMXJ2Bt
+539vq7/C52AaiSThmr0c6sFnIndNwgILLDSpKvdslqDJZ8I4SgDZyRppdmcPv4qQ
+SR/q8iKmOE8hBiV+L26VVGi/tSLxp1ckBlhZGBCJeYVucvuHirosJCAtG3kBjVTC
+A2AirFhI9erJGkn/Rdefq16P
+-----END PRIVATE KEY-----
diff -Puri a/certs/test-ca.pem b/certs/test-ca.pem
--- a/certs/test-ca.pem	2014-04-10 06:17:47.000000000 +0200
+++ b/certs/test-ca.pem	2019-04-01 13:56:14.600567227 +0200
@@ -1,19 +1,20 @@
 -----BEGIN CERTIFICATE-----
-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
+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
+khCxOQWbRUNrMDBCtg==
 -----END CERTIFICATE-----
diff -Puri a/lib/IO/Socket/SSL.pod b/lib/IO/Socket/SSL.pod
--- a/lib/IO/Socket/SSL.pod	2017-09-05 11:35:57.000000000 +0200
+++ b/lib/IO/Socket/SSL.pod	2019-04-01 13:56:14.600567227 +0200
@@ -386,7 +386,7 @@
 
 If the validation fails because the certificate is self-signed and that's what
 you expect, you can use the C<SSL_fingerprint> option to accept specific
-certificates by their certificate or pubkey fingerprint.
+leaf certificates by their certificate or pubkey fingerprint.
 
 =item *
 
@@ -885,8 +885,8 @@
 
 You can specify a list of fingerprints in case you have several acceptable
 certificates.
-If a fingerprint matches the topmost certificate no additional validations
-can make the verification fail.
+If a fingerprint matches the topmost (i.e. leaf) certificate no additional
+validations can make the verification fail.
 
 =item SSL_cert_file | SSL_cert | SSL_key_file | SSL_key
 
@@ -920,6 +920,13 @@
 address, depending on the name given by SNI, you can use a hash reference
 instead of a file with C<<hostname => cert_file>>.
 
+If your SSL server should be able to use both RSA and ECDSA certificates for the
+same domain/IP a similar hash reference like with SNI is given. The
+domain names used to specify the additional certificates should be
+C<hostname%whatever>, i.e.  C<hostname%ecc> or similar. To let the server pick
+the certificate based on the clients cipher preference also
+C<SSL_honor_cipher_order> should be set to false.
+
 In case certs and keys are needed but not given it might fall back to builtin
 defaults, see "Defaults for Cert, Key and CA".
 
diff -Puri a/MANIFEST b/MANIFEST
--- a/MANIFEST	2017-10-22 10:44:13.000000000 +0200
+++ b/MANIFEST	2019-04-01 13:56:14.592567137 +0200
@@ -4,6 +4,8 @@
 certs/client-key.pem
 certs/my-ca.pem
 certs/proxyca.pem
+certs/server2-cert.pem
+certs/server2-key.pem
 certs/server-cert.der
 certs/server-cert.pem
 certs/server_enc.p12
diff -Puri a/t/connectSSL-timeout.t b/t/connectSSL-timeout.t
--- a/t/connectSSL-timeout.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/connectSSL-timeout.t	2019-04-01 13:56:14.548566643 +0200
@@ -62,7 +62,7 @@
     print "Connected\n";
     if ( IO::Socket::SSL->start_SSL( $c,
 	Timeout => 5,
-	SSL_ca_file => 'certs/my-ca.pem',
+	SSL_ca_file => 'certs/test-ca.pem',
     )) {
 	print "Client SSL Handshake OK\n";
 	print <$c>
diff -Puri a/t/mitm.t b/t/mitm.t
--- a/t/mitm.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/mitm.t	2019-04-01 13:56:14.552566688 +0200
@@ -45,7 +45,7 @@
     PeerAddr => $saddr,
     Domain => AF_INET,
     SSL_verify_mode => 1,
-    SSL_ca_file => 'certs/my-ca.pem',
+    SSL_ca_file => 'certs/test-ca.pem',
 );
 ssl_ok($cl,"ssl connected to server");
 ok( $cl->peer_certificate('subject') =~ m{server\.local}, "subject w/o mitm");
@@ -83,7 +83,7 @@
 	    PeerAddr => $saddr,
 	    Domain => AF_INET,
 	    SSL_verify_mode => 1,
-	    SSL_ca_file => 'certs/my-ca.pem',
+	    SSL_ca_file => 'certs/test-ca.pem',
 	) or die "failed connect to server: $!, $SSL_ERROR";
 	my ($cert,$key) = $mitm->clone_cert($tos->peer_certificate);
 	$toc = IO::Socket::SSL->start_SSL( $toc,
diff -Puri a/t/plain_upgrade_downgrade.t b/t/plain_upgrade_downgrade.t
--- a/t/plain_upgrade_downgrade.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/plain_upgrade_downgrade.t	2019-04-01 13:56:14.552566688 +0200
@@ -7,7 +7,7 @@
 do './testlib.pl' || do './t/testlib.pl' || die "no testlib";
 
 # create listener
-IO::Socket::SSL::default_ca('certs/my-ca.pem');
+IO::Socket::SSL::default_ca('certs/test-ca.pem');
 my $server = IO::Socket::SSL->new(
     LocalAddr => '127.0.0.1',
     LocalPort => 0,
diff -Puri a/t/sni.t b/t/sni.t
--- a/t/sni.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/sni.t	2019-04-01 13:56:14.552566688 +0200
@@ -26,13 +26,13 @@
     SSL_ca_file => "certs/test-ca.pem",
     SSL_cert_file => {
 	'server.local' => 'certs/server-cert.pem',
-	'client.local' => 'certs/client-cert.pem',
+	'server2.local' => 'certs/server2-cert.pem',
 	'smtp.mydomain.local' => "certs/server-wildcard.pem",
 	'' => "certs/server-wildcard.pem",
     },
     SSL_key_file => {
 	'server.local' => 'certs/server-key.pem',
-	'client.local' => 'certs/client-key.pem',
+	'server2.local' => 'certs/server2-key.pem',
 	'smtp.mydomain.local' => "certs/server-wildcard.pem",
 	'' => "certs/server-wildcard.pem",
     },
@@ -47,7 +47,7 @@
 # all other should match the specific entries
 my @tests = qw(
     server.local
-    client.local
+    server2.local
     smtp.mydomain.local
     www13.other.local
 );
@@ -62,7 +62,7 @@
 	    Domain => AF_INET,
 	    SSL_verify_mode => 1,
 	    SSL_hostname => $host,
-	    SSL_ca_file => 'certs/my-ca.pem',
+	    SSL_ca_file => 'certs/test-ca.pem',
 	) || print "not ";
 	print "ok # client ssl connect $host\n";
 
diff -Puri a/t/sni_verify.t b/t/sni_verify.t
--- a/t/sni_verify.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/sni_verify.t	2019-04-01 13:56:14.552566688 +0200
@@ -26,13 +26,13 @@
     SSL_ca_file => "certs/test-ca.pem",
     SSL_cert_file => {
 	'server.local' => 'certs/server-cert.pem',
-	'client.local' => 'certs/client-cert.pem',
+	'server2.local' => 'certs/server2-cert.pem',
 	'smtp.mydomain.local' => "certs/server-wildcard.pem",
 	'' => "certs/server-wildcard.pem",
     },
     SSL_key_file => {
 	'server.local' => 'certs/server-key.pem',
-	'client.local' => 'certs/client-key.pem',
+	'server2.local' => 'certs/server2-key.pem',
 	'smtp.mydomain.local' => "certs/server-wildcard.pem",
 	'' => "certs/server-wildcard.pem",
     },
@@ -48,7 +48,7 @@
 # all other should match the specific entries
 my @tests = qw(
     server.local
-    client.local
+    server2.local
     smtp.mydomain.local
     www13.other.local
 );
@@ -63,7 +63,7 @@
 	    Domain => AF_INET,
 	    SSL_verify_mode => 1,
 	    SSL_hostname => $host,
-	    SSL_ca_file => 'certs/my-ca.pem',
+	    SSL_ca_file => 'certs/test-ca.pem',
 	    SSL_cert_file => 'certs/client-cert.pem',
 	    SSL_key_file => 'certs/client-key.pem',
 	) || print "not ";
diff -Puri a/t/startssl.t b/t/startssl.t
--- a/t/startssl.t	2017-08-18 07:16:28.000000000 +0200
+++ b/t/startssl.t	2019-04-01 13:56:14.600567227 +0200
@@ -5,12 +5,26 @@
 use Net::SSLeay;
 use Socket;
 use IO::Socket::SSL;
+use IO::Socket::SSL::Utils;
 use IO::Select;
 do './testlib.pl' || do './t/testlib.pl' || die "no testlib";
 
 $|=1;
 print "1..21\n";
 
+my $getfp = do {
+    my (%file2fp);
+    Net::SSLeay::SSLeay_add_ssl_algorithms();
+    my $sha256 = Net::SSLeay::EVP_get_digestbyname('sha256') or die;
+    sub {
+	my $file = shift;
+	return $file2fp{$file} ||= do {
+	    my $cert = PEM_file2cert($file);
+	    'sha256$'.unpack('H*',Net::SSLeay::X509_digest($cert, $sha256));
+	};
+    }
+};
+
 
 my $server = IO::Socket::INET->new(
     LocalAddr => '127.0.0.1',
@@ -47,19 +61,19 @@
 
     $client->sock_certificate('subject') =~ /client\.local/ or print "not ";
     ok("client local certificate subject");
-    $client->sock_certificate('issuer') =~ /O::Socket::SSL Demo CA/ or print "not ";
+    $client->sock_certificate('issuer') =~ /IO::Socket::SSL Demo CA/ or print "not ";
     ok("client local certificate issuer");
     $client->get_fingerprint('sha256',$client->sock_certificate)
-	eq 'sha256$cbc6a9f1faa81213f7fe3184c32fbfcfeb26f8b24189e64aea9488111437e5eb'
+	eq $getfp->('certs/client-cert.pem')
 	or print "not ";
     ok("client local certificate fingerprint");
 
     $client->peer_certificate('subject') =~ /server\.local/ or print "not ";
     ok("client peer certificate subject");
-    $client->peer_certificate('issuer') =~ /O::Socket::SSL Demo CA/ or print "not ";
+    $client->peer_certificate('issuer') =~ /IO::Socket::SSL Demo CA/ or print "not ";
     ok("client peer certificate issuer");
     $client->get_fingerprint()
-	eq 'sha256$abba71ff26f5d673b096a65a14e323efec37cee6d5a47017baba0b61e591ff8f'
+	eq $getfp->('certs/server-cert.pem')
 	or print "not ";
     ok("client peer certificate fingerprint");
 
@@ -88,19 +102,19 @@
 
 $csock->sock_certificate('subject') =~ /server\.local/ or print "not ";
 ok("server local certificate subject");
-$csock->sock_certificate('issuer') =~ /O::Socket::SSL Demo CA/ or print "not ";
+$csock->sock_certificate('issuer') =~ /IO::Socket::SSL Demo CA/ or print "not ";
 ok("server local certificate issuer");
 $csock->get_fingerprint('sha256',$csock->sock_certificate)
-    eq 'sha256$abba71ff26f5d673b096a65a14e323efec37cee6d5a47017baba0b61e591ff8f'
+    eq $getfp->('certs/server-cert.pem')
     or print "not ";
 ok("server local certificate fingerprint");
 
 $csock->peer_certificate('subject') =~ /client\.local/ or print "not ";
 ok("server peer certificate subject");
-$csock->peer_certificate('issuer') =~ /O::Socket::SSL Demo CA/ or print "not ";
+$csock->peer_certificate('issuer') =~ /IO::Socket::SSL Demo CA/ or print "not ";
 ok("server peer certificate issuer");
 $csock->get_fingerprint()
-    eq 'sha256$cbc6a9f1faa81213f7fe3184c32fbfcfeb26f8b24189e64aea9488111437e5eb'
+    eq $getfp->('certs/client-cert.pem')
     or print "not ";
 ok("server peer certificate fingerprint");
 
diff -Puri a/t/sysread_write.t b/t/sysread_write.t
--- a/t/sysread_write.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/sysread_write.t	2019-04-01 13:56:14.552566688 +0200
@@ -27,8 +27,8 @@
     LocalAddr => '127.0.0.1',
     LocalPort => 0,
     Listen => 2,
-    SSL_cert_file => "certs/client-cert.pem",
-    SSL_key_file => "certs/client-key.pem",
+    SSL_cert_file => "certs/server-cert.pem",
+    SSL_key_file => "certs/server-key.pem",
 );
 print "not ok: $!\n", exit if !$server;
 ok("Server Initialization");
diff -Puri a/t/verify_fingerprint.t b/t/verify_fingerprint.t
--- a/t/verify_fingerprint.t	2017-04-27 20:43:14.000000000 +0200
+++ b/t/verify_fingerprint.t	2019-04-01 13:56:14.584567048 +0200
@@ -42,7 +42,10 @@
     [ $saddr2, [$ca2], undef, "accept ca2 for saddr2", 1 ],
     [ $saddr1, [$ca2], undef, "reject ca2 for saddr1", 0 ],
     [ $saddr1, [$ca1,$ca2], undef, "accept ca[12] for saddr1", 1 ],
-    [ $saddr1, [$cert1], undef, "reject non-ca cert1 as ca for saddr1", 0 ],
+    (defined &Net::SSLeay::X509_V_FLAG_PARTIAL_CHAIN ?
+	[ $saddr1, [$cert1], undef, "accept leaf cert1 as trust anchor for saddr1", 1 ] :
+	[ $saddr1, [$cert1], undef, "reject leaf cert1 as trust anchor for saddr1", 0 ]
+    )
 ) {
     my ($saddr,$certs,$fp,$what,$expect) = @$test;
     my $cafile;
