Skip navigation

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.