Проверка соответствия приватного ключа, сертификата и CSR
Если вы работаете с многочисленными SSL-сертификатами, вы можете столкнуться со следующей проблемой: непонятно, к какому сертификату относится тот или иной приватный ключ. То же самое характерно и для CSR – не всегда понятно, какой CSR соответствует тому или иному приватному ключу.
Также вы можете столкнуться со следующей ошибкой: "Private Key and the Certificate do not match". Могут появляться и другие ошибки при попытке установки сертификата на сервер.
Примечание: SSL-сертификат может быть установлен на сервер ТОЛЬКО с тем приватным ключом, который был сгенерирован во время соответствующего CSR запроса при заказе сертификата. Если приватный ключ не будет соответствовать сертификату, то в таком случае вам не удастся установить сертификат на сервер. Панель управления будет выдавать ошибку о несоответствии пары ключа/сертификата.
Это правило было установлено индустрией SSL для обеспечения безопасности и предотвращения выпуска поддельных сертификатов.
Как выполнить проверку соответствия SSL-сертификатов их CSR и приватным ключам
Проверка соответствия SSL-сертификатов их CSR и приватным ключам может быть легко выполнена с помощью команд OpenSSL.
Давайте выведем значения модулей (модули – внутренние данные, хранящиеся в CSR, SSL-сертификате и приватном ключе) для приватного ключа, CSR и SSL-сертификата, после чего конвертируем их в хэши md5, чтобы можно было провести их сравнение.
Команда для вывода модуля SSL-сертификата:
$ openssl x509 -noout -modulus -in ssl_certificate.crt | openssl md5
Команда для вывода модуля приватного ключа:
$ openssl rsa -noout -modulus -in private.key | openssl md5
Команда для вывода модуля CSR:
$ openssl req -noout -modulus -in csr_request.csr | openssl md5
Если полученные значения модулей совпадают, следовательно, сертификат, приватный ключ и CSR соответствуют друг другу.