Вы можете проверить целостность сертификата SSL и пары закрытых ключей с помощью
утилиты OpenSSL
и ее командной строки.
Процесс состоит из четырех шагов:
- Убедитесь, что закрытый ключ не был изменен.
- Проверьте соответствие значения модуля с парой закрытого ключа и сертификата SSL
- Успешно выполните шифрование с помощью открытого ключа из сертификата и расшифровку с помощью закрытого ключа
- Подтвердите целостность файла, который подписан закрытым ключом
Проверьте целостность закрытого ключа
Выполните следующую команду: openssl rsa -in [key-file .key] -check -noout
Вот пример испорченного закрытого ключа:
Ниже перечислены другие ошибки, возникающие из-за измененного/подделанного ключа:
- Ошибка ключа RSA: p не простой
- Ошибка ключа RSA: n не равно p q
- Ошибка ключа RSA: d e не конгруэнтно 1
- Ошибка ключа RSA: dmp1 не конгруэнтен d
- Ошибка ключа RSA: iqmp не обратен q
Если Вы столкнулись с любой из вышеперечисленных ошибок, Ваш закрытый ключ был подделан и может не работать с Вашим открытым ключом. Подумайте о создании нового закрытого ключа и запросе на замену сертификата.
Вот пример закрытого ключа, который отвечает требованиям целостности:
Проверьте соответствие значения модуля с парой закрытого ключа и сертификата 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

