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