wake-up-neo.net

So ermitteln Sie den Zertifikattyp aus der Datei

Offenbar gibt es keine Standardbenennungskonvention für OpenSSL-Zertifikate. Daher möchte ich wissen, ob es einen einfachen Befehl gibt, um wichtige Informationen zu OpenSSL-Zertifikaten unabhängig vom Typ zu erhalten. Ich würde gerne mindestens den Zertifikattyp (x509, RSA, DSA) und ob es sich um einen öffentlichen oder privaten Schlüssel handelt. Wenn ich mir den Inhalt eines Zertifikats anschaue, das ich gerade aus einer PKCS12-Datei extrahiert habe, werden beide nicht explizit angezeigt.

25
l0b0

Erstens haben Sie einige Terminologieprobleme:

  • der X509-Standard definiert Zertifikate. RSA und DSA sind zwei der Algorithmen mit öffentlichem Schlüssel, die in diesen Zertifikaten verwendet werden können.
  • zertifikate werden für öffentliche Schlüssel und niemals für private Schlüssel verwendet.
  • PKCS # 12 ist ein Standard für einen Container, der ein X509-Client-Zertifikat und die entsprechenden privaten Schlüssel sowie (optional) das X509-Zertifikat der Zertifizierungsstellen enthalten kann, die das X509-Client-Zertifikat signiert haben.

Wenn Sie also eine PKCS # 12-Datei (normalerweise .p12-Erweiterung) untersuchen, wissen Sie bereits:

  • Es enthält mindestens ein X509-Clientzertifikat, das einen öffentlichen Schlüssel enthält. und
  • Es enthält die entsprechenden privaten Schlüssel.

Sie wissen nur nicht, ob es sich bei dem Zertifikat und dem privaten Schlüssel um RSA oder DSA handelt. Sie können dies überprüfen, indem Sie die Zertifikate extrahieren und dann prüfen:

openssl pkcs12 -in mycert.p12 -clcerts -nokeys -out mycert.crt
openssl x509 -in mycert.crt -text

Die Textausgabe des Befehls openssl x509 sollte einen Abschnitt Subject Public Key enthalten, der Felder enthält, in denen Sie sehen können, ob es sich um einen RSA- oder DSA-Schlüssel (zusammen mit der Schlüsselgröße) handelt.

36
caf

Zertifikate können auch auf bestimmte Zwecke beschränkt sein. 

Beispielsweise kann es eingeschränkt sein, sodass es nicht als Zertifizierungsstelle verwendet werden kann. Lesen Sie auch mehr in diesem StackOverflow Post .

0
Wilt