hero-faq-1

Как проверить целостность пары закрытых ключей?

Вы можете проверить целостность сертификата SSL и пары закрытых ключей с помощью
утилиты OpenSSL
и ее командной строки.

Процесс состоит из четырех шагов:

  1. Убедитесь, что закрытый ключ не был изменен.
  2. Проверьте соответствие значения модуля с парой закрытого ключа и сертификата SSL
  3. Успешно выполните шифрование с помощью открытого ключа из сертификата и расшифровку с помощью закрытого ключа
  4. Подтвердите целостность файла, который подписан закрытым ключом

Проверьте целостность закрытого ключа

Выполните следующую команду: openssl rsa -in [key-file .key] -check -noout

Вот пример испорченного закрытого ключа:

ошибка с закрытым ключом

Ниже перечислены другие ошибки, возникающие из-за измененного/подделанного ключа:

  • Ошибка ключа RSA: p не простой
  • Ошибка ключа RSA: n не равно p q
  • Ошибка ключа RSA: d e не конгруэнтно 1
  • Ошибка ключа RSA: dmp1 не конгруэнтен d
  • Ошибка ключа RSA: iqmp не обратен q

Если Вы столкнулись с любой из вышеперечисленных ошибок, Ваш закрытый ключ был подделан и может не работать с Вашим открытым ключом. Подумайте о создании нового закрытого ключа и запросе на замену сертификата.

Вот пример закрытого ключа, который отвечает требованиям целостности:

ключ rsa ok

Проверьте соответствие значения модуля с парой закрытого ключа и сертификата SSL


Примечание:

Модули закрытого ключа и сертификата должны точно совпадать.

Чтобы просмотреть модуль сертификата, выполните команду:

openssl x509 -noout -modulus -in [certificate-file .cer]

Чтобы просмотреть закрытый ключ Modulus, выполните команду:

openssl rsa -noout -modulus -in [key-file .key]

Зашифруйте с помощью открытого ключа и расшифруйте с помощью закрытого ключа.

1. Получите открытый ключ из сертификата:

openssl x509 -in [certificate-file .cer] -noout -pubkey > certificatefile.pub.cer

2. Зашифруйте содержимое файла test.txt с помощью открытого ключа

Создайте новый файл под названием test.txt (Вы можете использовать Блокнот) с содержанием «message test». Выполните следующую команду, чтобы создать зашифрованное сообщение в файле cipher.txt.

openssl rsautl -encrypt -in test.txt -pubin -inkey certificatefile.pub.cer -out cipher.txt

3. Расшифруйте содержимое cipher.txt с помощью закрытого ключа
Выполните следующую команду для расшифровки содержимого cipher.txt.

openssl rsautl -decrypt -in cipher.txt -inkey [key-file .key]

Убедитесь, что Вы можете расшифровать содержимое файла cipher.txt на своем терминале. Вывод из терминала должен совпадать с содержимым файла test.txt.

Если содержимое не совпадает, значит, закрытый ключ был подделан и может не работать с Вашим открытым ключом. Подумайте о создании нового закрытого ключа и запросе на замену сертификата. Вот пример расшифрованного сообщения:

тест сообщений

4. Подтвердите целостность файла, подписанного закрытым ключом

Выполните следующую команду, чтобы подписать файл test.sig и test.txt Вашим закрытым ключом:

openssl dgst -sha256 -sign [key-file .key] -out test.sig test.txt

Теперь проверьте подписанные файлы с помощью Вашего открытого ключа, извлеченного из шага 1.

openssl dgst -sha256 -verify certificatefile.pub.cer -signature test.sig test.txt

Убедитесь, что вывод из терминала выглядит так, как показано в примере ниже:

проверено ок
Если Ваш закрытый ключ будет подделан, Вы получите следующее сообщение:

Сбой верификации
В этом случае Вам следует создать новый закрытый ключ и запросить замену сертификата.

Источник: База знаний Digicert

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете