Ein X.509-Zertifikat enthält alle für die Identifikation des Servers oder des Clients benötigten Informationen sowie den Public Key des Zertifikatseigners. Zertifikate werden in eigenen Dateien abgelegt. Beim Aushandeln der Verbindung identifiziert SSL mithilfe der Zertifikatsdateien den Server, in manchen Anwendungen auch den Client.
Certificate Authority
Zertifikate werden von einer zentralen Stelle, der so genannten Certificate Authority (CA), durch Signieren mit dem privaten Schlüssel der CA ausgestellt, nachdem die Identität der im Zertifikat genannten Organisation und einer vertretungsberechtigten Person überprüft wurde. Die Signatur ist im Zertifikat enthalten und wird zum Zeitpunkt des Verbindungsaufbaus offengelegt, so dass der Client die Vertrauenswürdigkeit des Zertifikats verifizieren kann. Umgekehrt kann auch der Server ein Zertifikat vom Client fordern. Dies kommt allerdings in der Praxis nur selten vor.
Zertifikate, die von einer CA signiert sind, können durch Veröffentlichung in einer so genannten Certificate Revocation List (CRL) für ungültig erklärt werden.
X.509-Zertifikate
Im Zusammenhang mit SSL werden X.509-Zertifikate verwendet. X.509-Zertifikate arbeiten mit einer hierarchischen Vertrauensstruktur, an deren oberster Stelle die Certificate Authorities für die nachgewiesene Identität der Zertifikatsinhaber rechtlich bindend bürgen (Liability). Je nach Vertrauensstufe genügt den CAs als Nachweis der Identität bei Zertifikatsbeantragung eine gültige E-Mail-Adresse, ein gültiger Host-Name oder weitergehende Vertrauensnachweise (siehe Abschnitt „X.509-Zertifikate beantragen und erstellen“). Ein Beispiel für zentrale CAs ist DigiCert.
Den Inhalt eines Zertifikats können Sie sich am Browser ansehen oder mithilfe der Prozedur SHOW.CERT ausgeben lassen (siehe "Prozedur SHOW.CERT"). (Die Prozedur SHOW.CERT ruft das OpenSSL-Kommando-Programm auf.)
Die folgende Abbildung zeigt ein Beispiel für ein X.509-Zertifikat.
Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: C=XY, ST=Snake Desert, L=Snake Town, O=Snake Oil, OU=Certificate Authority, CN=Snake Oil CA/emailAddress=ca@snakeoil.dom Validity Not Before: Dec 14 16:22:17 2015 GMT Not After : Dec 14 16:22:17 2035 GMT Subject: C=XY, ST=Snake Desert, L=Snake Town, O=Snake Oil, OU=Certificate Authority, CN=Snake Oil CA/emailAddress=ca@snakeoil.dom Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:9e:f9:2f:58:46:09:09:d0:14:8d:79:8d:03:22: ed:ae:4f:a6:94:6c:97:a8:af:49:7d:1c:26:e3:27: 27:9d:aa:d4:04:90:40:99:b7:24:c0:27:63:33:a9: de:58:a0:41:99:8e:56:e9:79:9a:ea:f3:c9:98:5c: 76:4b:8b:78:f6:49:4c:e6:8d:25:25:cd:e5:04:84: 2b:fd:fb:d1:51:e1:f9:e9:1a:da:5d:74:93:3e:24: 13:e2:33:9d:52:10:05:bd:f0:b6:38:81:1f:6b:3a: a5:d9:ae:80:b2:30:0a:bd:70:1c:ff:4c:25:0c:3a: b9:43:82:2e:d0:28:7b:6f:4d:4a:8e:ac:48:c2:c5: e6:a2:70:a5:04:04:94:6b:44:f7:bc:27:20:99:77: 94:2f:c1:98:4d:51:e2:16:fb:8f:c9:15:e2:4b:31: 9d:d0:ee:16:89:bb:8e:2d:ea:90:f6:56:c7:ae:fd: 07:13:a1:2a:3c:4e:a1:a8:f4:f7:91:f6:3e:6a:fe: ae:22:65:a7:be:9f:3b:57:1c:3b:90:77:85:6b:6f: 25:94:58:22:12:89:b6:bd:e6:ce:89:92:41:bf:7f: 02:89:53:1c:87:81:44:33:f7:ae:85:9d:3c:df:fb: 99:43:81:e3:dc:76:84:f4:b1:0a:d2:6f:98:91:4c: b4:e1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: email:ca@snakeoil.dom X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha256WithRSAEncryption 8a:e4:e9:27:ce:20:c7:76:9e:c1:76:c2:b0:83:74:4f:72:fd: a8:ea:f7:f7:94:01:f3:86:ee:e4:99:ba:46:03:c2:62:bf:73: 7c:a3:7d:66:f7:d2:29:12:e3:f9:c4:88:04:47:bd:0b:e2:73: 0d:cd:ed:fb:48:61:37:4f:7b:85:16:45:ec:f5:49:cf:d1:17: 00:71:38:87:0e:10:24:b3:4f:ff:50:22:d9:67:25:17:5d:26: 3f:0a:c4:d1:9a:fe:e3:d7:4b:09:c0:93:de:31:32:09:14:57: 8d:9c:59:41:ab:05:08:6c:09:5b:c8:0f:5a:92:20:31:66:9c: 5f:b0:ab:ba:29:19:04:04:94:b8:55:b5:a0:f3:2f:09:b2:5d: 5e:47:da:da:c8:2d:38:57:48:27:a9:34:a9:dc:94:ed:c8:30: 74:e1:ad:86:6c:60:d0:a7:fa:ed:ba:e7:67:bd:ae:e7:5e:f5: c2:50:d2:f1:93:00:53:51:ad:84:9e:7e:9d:c2:5a:b1:0a:2d: 13:a9:92:97:8c:69:3a:48:9b:76:1e:df:29:16:6a:b9:75:77: 91:57:4e:53:da:92:73:65:0c:95:65:01:eb:c6:1a:64:06:e0: 40:c5:63:6d:03:85:36:e3:d7:17:a2:c7:4b:cb:7b:23:72:a8: 4b:2a:bc:96
Certificate Revocation List (CRL)
Zertifikatsverarbeitende Systeme müssen in der Lage sein, zu erkennen, wenn ein Zertifikat widerrufen wurde. Bei X.509-Zertifikaten erfolgt diese Statusprüfung mithilfe so genannter Certificate Revocation Lists (CRL). In einer CRL sind alle von einer bestimmten Certificate Authority (CA) erteilten Zertifikate aufgeführt, die nicht mehr gültig sind. Somit können Zertifikate, die von einer Certificate Authority herausgegeben wurden, durch Veröffentlichung einer CRL für ungültig erklärt werden.