Die klassische Referenz hierfür ist diese FAQ in den Online-Apache-Dokumenten.
In diesem Dokument wird ein md5
Modul verwendet, weil
Da der öffentliche Exponent normalerweise 65537 ist und es schwierig ist, visuell zu überprüfen, ob die langen Modulzahlen gleich sind, können Sie den folgenden Ansatz verwenden
Das gibt:
$ openssl rsa -noout -modulus -in key.pem.decrypted | openssl md5
(stdin)= 9fxxfoobar558d9xx0045a89467d2bxx
$ openssl x509 -noout -modulus -in crt.pem | openssl md5
(stdin)= 9fxxfoobar558d9xx0045a89467d2bxx
Ich schlage die Verwendung der Prozesssubstitution vor, um einen visuellen Vergleich des Moduls zu vermeiden:
$ diff \
<(openssl x509 -noout -modulus -in cert.pem) \
<(openssl rsa -noout -modulus -in key.pem.decrypted)
Wenn die Ausgabe leer ist, stimmt der private Schlüssel mit dem Zertifikat überein.
Dies ist nur eine bequemere Möglichkeit, die Zeichenfolgen zu vergleichen, als die in Andrew Schulmans Antwort, die natürlich auch gültig ist.
Eine weitere Referenz hier .
Um zu überprüfen, ob eine Zertifikatdatei den öffentlichen Schlüssel zertifiziert, der einer bestimmten privaten Schlüsseldatei zugeordnet ist, vergleichen Sie die öffentlichen Schlüssel, die jedem zugeordnet sind:
Das Zertifikat und der private Schlüssel stimmen genau dann überein, wenn die öffentlichen Schlüssel identisch sind.
quelle