HTTPS Zertifikat testen
Ein für HTTPS genutztes Zertifikat läßt sich mit openssl leicht in der Kommandozeile testen. Doch wie testet man es "von außen" per HTTPS, wenn man keinen GUI-Webbrowser zur Verfügung hat, nicht nutzen möchte oder "auf Nummer Sicher" gehen möchte?
Man benötigt als einziges Tool hierfür openssl. Zuerst baut man eine Verbindung zu dem Webserver auf (Ausgabe gekürzt):
> openssl s_client -connect www.spiegel.de:443 CONNECTED(00000003) ... --- Certificate chain ... (c)05/CN=www.spiegel.de ... --- Server certificate -----BEGIN CERTIFICATE----- ... (Hier folgt die ASCII-Darstellung des Zertifikats) -----END CERTIFICATE----- ... (c)05/CN=www.spiegel.de ... VeriSign --- No client certificate CA names sent --- SSL handshake has read 2274 bytes and written 324 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: ... Session-ID-ctx: Master-Key: ... Key-Arg : None Krb5 Principal: None Start Time: 1252251464 Timeout : 300 (sec) ---
An dieser Stelle kann man sich eine Datei schicken lassen. Wir versuchen, einen 404-Fehler hervor zu rufen und geben den folgenden HTTP-Request ein:
GET /xxxxxxx HTTP/1.0 Host: www.spiegel.de
(Die meisten Webserver akzeptieren ein einfaches LF statt CRLF. Die Leerzeile muß sein.)
Die Antwort:
HTTP/1.0 302 Moved Temporarily Date: Sun, 06 Sep 2009 15:38:13 GMT Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5 Location: http://www.spiegel.de/xxxxxxx/ Content-Length: 0 X-Cache: MISS from www.spiegel.de Content-Type: text/plain X-Cache: MISS from lnxp-1318.srv.mediaways.net Via: 1.1 www.spiegel.de, 1.0 lnxp-1318.srv.mediaways.net:80 (squid/2.6.STABLE20) Connection: close read:errno=0
Wir packen das Zertifikat von oben in eine Datei und prüfen diese:
> cat 1 -----BEGIN CERTIFICATE----- MIIEwjCCBCugAwIBAg... ... 0xy8GxMry+xw2n90KFi25lEEA3FdBQ== -----END CERTIFICATE----- > openssl x509 -noout -text -in 1 Certificate: Data: Version: 3 (0x2) Serial Number: 53:fd:4c:e1:4d:3e:b5:13:82:2b:06:6d:8f:51:19:22 Signature Algorithm: sha1WithRSAEncryption Issuer: O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign International Server CA - Class 3, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign Validity Not Before: Aug 25 00:00:00 2009 GMT Not After : Oct 23 23:59:59 2014 GMT Subject: C=DE, ST=Hamburg, L=Hamburg, O=SPIEGEL ONLINE GmbH, OU=Terms of use at www.verisign.com/rpa (c)00, OU=Terms of use at www.verisign.com/rpa (c)05, CN=www.spiegel.de Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:99:db:d5:a8:e6:a5:d4:3a:00:ec:98:8f:21:ff: f6:f2:5b:b6:0f:97:74:e7:0d:07:8a:8a:56:49:81: 95:48:bd:e1:a8:33:31:c8:84:7d:41:54:f2:a9:36: 8c:41:20:98:7f:fc:a1:b4:58:25:92:18:e4:41:52: d9:9f:da:58:c0:02:c2:9a:49:31:a5:d2:ac:f3:31: 5a:2f:33:e6:78:4a:b7:e5:96:8a:03:55:af:8d:09: 81:6d:4a:18:22:5f:30:99:8c:c3:b7:71:92:07:e9: 9f:a6:8d:ea:1a:d6:a6:a7:6c:6f:f8:3a:4f:09:8f: 03:86:7f:f5:fa:b6:82:35:cf Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.23.3 CPS: https://www.verisign.com/rpa X509v3 CRL Distribution Points: URI:http://SVRIntl-crl.verisign.com/SVRIntl.crl X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto Authority Information Access: OCSP - URI:http://ocsp.verisign.com CA Issuers - URI:http://SVRIntl-aia.verisign.com/SVRIntl-aia.cer 1.3.6.1.5.5.7.1.12: 0`.^.\0Z0X0V..image/gif... Signature Algorithm: sha1WithRSAEncryption 66:50:1c:55:00:7c:dd:fe:31:e8:51:47:4e:92:7c:77:e1:5e: af:3b:7e:88:17:7a:a1:b6:bb:7f:57:68:04:bd:d6:62:c4:d3: 31:b5:28:f0:2c:f7:23:27:ad:eb:b8:8c:2f:3e:6d:ec:00:5c: 07:ab:a3:46:2f:32:c1:3f:d8:5b:6e:1f:7f:ff:e9:d3:a3:d6: 2d:e0:d1:ec:88:ac:00:ad:cd:79:8c:27:56:69:c6:f0:44:27: eb:2a:52:4a:f6:bc:55:8e:58:1d:e5:4a:df:7d:1b:e1:d3:1c: bc:1b:13:2b:cb:ec:70:da:7f:74:28:58:b6:e6:51:04:03:71: 5d:05