В криптографии с открытым ключом RSA закрытый и открытый ключи в паре математически связаны в том, что они имеют один и тот же модуль. Длина модуля, выраженная в битах, является длиной ключа.
Чтобы подтвердить, что определенный закрытый ключ соответствует открытому ключу, содержащемуся в запросе на подпись сертификата (CSR) и сертификат, необходимо подтвердить, что модули обоих ключей идентичны. Это может быть сделано прямо с OpenSSL в Linux / Unix, macOS или Windows (с Подсистема Linux в Windows 10 or Cygwin), следующим образом:
Чтобы просмотреть md5-хеш модуля закрытого ключа:
$ openssl rsa -noout -modulus -in mykey.key | Опенссл мд5
Чтобы просмотреть хэш MD5 модуля CSR:
$ openssl req -noout -modulus -в моемcsr.csr | Опенссл мд5
Чтобы просмотреть хэш md5 модуля сертификата:
$ openssl x509 -noout -modulus -in mycert.crt | Опенссл мд5
Если все три хэша совпадают, CSR, сертификат и закрытый ключ совместимы. Вы можете использовать diff3
сравнить модули из всех трех файлов одновременно:
$ openssl req -noout -modulus -в моемcsr.csr > csr-mod.txt $ openssl x509 -noout -modulus -in mycert.crt> cert-mod.txt $ openssl rsa -noout -modulus -in mykey.key> privkey-mod.txt $ diff3 csr-mod.txt сертификат-mod.txt privkey-mod.txt
Если все три файла идентичны, diff3
не будет производить вывод. Если вы хотите сравнить только два файла (например, сертификат и закрытый ключ), вы можете просто использовать diff
:
$ diff cert-mod.txt privkey-mod.txt
Опять же, diff
не будет производить вывод, если файлы идентичны.