Przy konfiguracji usług sieciowych z wykorzystanie protokołu SSL niezbędne jest narzędzie do testowania.
Ja do tego celu zawsze używałem polecenia openssl s_client…
Przykładowe wywołanie:
bash$>openssl s_client -host www.gmail.com -port 443
CONNECTED(00000003) depth=1 C = ZA, O = Thawte Consulting (Pty) Ltd., CN = Thawte SGC CA verify error:num=20:unable to get local issuer certificate verify return:0 --- Certificate chain 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA 1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority --- Server certificate -----BEGIN CERTIFICATE----- MIIDIjCCAougAwIBAgIQK59+5colpiUUIEeCdTqbuTANBgkqhkiG9w0BAQUFADBM MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0xMTEwMjYwMDAwMDBaFw0x MzA5MzAyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRgw FgYDVQQDFA9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAK85FZho5JL+T0/xu/8NLrD+Jaq9aARnJ+psQ0ynbcvIj36B7ocmJRASVDOe qj2bj46Ss0sB4/lKKcMP/ay300yXKT9pVc9wgwSvLgRudNYPFwn+niAkJOPHaJys Eb2S5LIbCfICMrtVGy0WXzASI+JMSo3C2j/huL/3OrGGvvDFAgMBAAGjgecwgeQw DAYDVR0TAQH/BAIwADA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0 ZS5jb20vVGhhd3RlU0dDQ0EuY3JsMCgGA1UdJQQhMB8GCCsGAQUFBwMBBggrBgEF BQcDAgYJYIZIAYb4QgQBMHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0 cDovL29jc3AudGhhd3RlLmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3 dGUuY29tL3JlcG9zaXRvcnkvVGhhd3RlX1NHQ19DQS5jcnQwDQYJKoZIhvcNAQEF BQADgYEANYARzVI+hCn7wSjhIOUCj19xZVgdYnJXPOZeJWHTy60i+NiBpOf0rnzZ wW2qkw1iB5/yZ0eZNDNPPQJ09IHWOAgh6OKh+gVBnJzJ+fPIo+4NpddQVF4vfXm3 fgp8tuIsqK7+lNfNFjBxBKqeecPStiSnJavwSI4vw6e7UN0Pz7A= -----END CERTIFICATE----- subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA --- No client certificate CA names sent --- SSL handshake has read 2129 bytes and written 348 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-RC4-SHA Server public key is 1024 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1.1 Cipher : ECDHE-RSA-RC4-SHA Session-ID: FAF07083E3987F8C76948F370003349B2736F130889CE10892AFDEF9C00AE898 Session-ID-ctx: Master-Key: E9E866682D1128FA2055AA7589F822748D25006B711CD3AEDCEE83E2F960CFD3D6DA732C3A047BE52320E478D9F4AF5A Key-Arg : None PSK identity: None PSK identity hint: None SRP username: None TLS session ticket lifetime hint: 100800 (seconds) TLS session ticket: 0000 - 4f 33 0a 4e 37 e5 50 88-64 21 5e a5 03 e3 8b d2 O3.N7.P.d!^..... 0010 - 26 b6 4b ae 80 7c 85 43-11 16 ea c3 5f 33 0e 80 &.K..|.C...._3.. 0020 - 46 ad de 1d 8d 5c 3c 2e-2c e5 aa b5 68 6c 1d 3a F....\<.,...hl.: 0030 - da 66 c7 19 9c eb c4 ca-d1 94 65 40 4b 7f 68 fe .f........e@K.h. 0040 - f9 e9 8d 39 39 d2 74 51-6e ad 5c 8a 4b af dd 61 ...99.tQn.\.K..a 0050 - 9b 3c 19 a5 14 07 f9 b2-6b 35 a5 b4 eb 3f 4c d3 .<......k5...?L. 0060 - 26 a5 cc 26 cd 67 c3 ff-24 a9 23 87 36 2f a9 ca &..&.g..$.#.6/.. 0070 - cd 0d 94 f3 66 f7 4e 42-f1 3e f8 f0 87 41 1e 1d ....f.NB.>...A.. 0080 - a5 d1 58 c9 64 43 f3 f4-e6 e5 4a 15 87 0c 8a 48 ..X.dC....J....H 0090 - b4 2b ca 11 .+.. Start Time: 1348692011 Timeout : 300 (sec) Verify return code: 20 (unable to get local issuer certificate) --- [...]
Jest to najprostszy znany mi klient SSL’a. Jak widać powyżej, po zaakceptowaniu certyfikatu serwera jest on wyświetlany na standardowe wyjście w formie zakodowanej BASE64. Można to wykorzystać do zapisania certyfikatu serwera metodą “Cpy’ego-Paste’a” :)
Podpinając się przez tego klienta można “porozmawiać” z dowolną usługą zabezpieczana protokołem SSL.