Одна из наиболее многофункциональных утилит SSL - это OpenSSL, которая является реализацией протокола SSL с открытым исходным кодом. Существуют версии OpenSSL почти для каждой платформы, включая Windows, Linux и Mac OS X. OpenSSL чаще всего используется для создания запросов на подпись сертификата и приватных ключей для множества различных платформ, включая Apache. Однако, есть ещё сотни различных функций, которые позволяют увидеть информацию из запроса на сертификат или из сертификата, сравнить хэш MD5 сертификата и приватного ключа (чтобы убедиться в том, что они соответствуют друг другу), проверить, что сертификат веб-сайта установлен правильно, преобразовать сертификат в другой формат. Скомпилированную версию OpenSSL для Windows можно найти здесь.
Если вам не хочется разбираться с OpenSSL, то многое из этого можно сделать при помощи наших инструментов для сертификатов SSL. Ниже мы привели наиболее часто используемые команды OpenSSL:
Общие команды OpenSSL
Эти команды позволят вам сгенерировать запрос на подпись сертификата, сертификат, приватный ключ и решить другие задачи.
- Создание нового приватного ключа и запроса на подпись сертификата:
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
- Создание самозаверяющего сертификата (за дополнительной информацией обратитесь к статье Как создать и установить самозаверяющий сертификат в Apache):
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
- Создание запроса на подпись сертификата для существующего приватного ключа:
openssl req -out CSR.csr -key privateKey.key -new
- Создание запроса на подпись сертификата на основе имеющегося сертификата:
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
- Удаление ключевой фразы из приватного ключа:
openssl rsa -in privateKey.pem -out newPrivateKey.pem
Если нужно проверить информацию в сертификате, в запросе на подпись сертификата или в приватном ключе, воспользуйтесь следующими командами. Также можно проверить запрос на подпись сертификата и проверить сертификат с помощью наших интерактивных инструментов.
- Проверка запроса на подпись сертификата:
openssl req -text -noout -verify -in CSR.csr
- Проверка приватного ключа:
openssl rsa -in privateKey.key -check
- Проверка сертификата:
openssl x509 -in certificate.crt -text -noout
- Проверка файла PKCS#12 (.pfx или .p12):
openssl pkcs12 -info -in keyStore.p12
При получении сообщения об ошибке, что приватный ключ не соответствует сертификату или что сертификат, установленный на веб-сайт, не заслуживает доверия, попробуйте одну из следующих команд. Если нужно проверить, правильно ли установлен этот сертификат SSL, попробуйте также наш инструмент для проверки SSL.
- Проверить, что хэш MD5 публичного ключа соответствует указанному в запросе на подпись сертификата или в приватном ключе:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl req -noout -modulus -in CSR.csr | openssl md5
- Проверить подключение SSL. Должны отобразиться все сертификаты (включая промежуточные):
openssl s_client -connect www.paypal.com:443
Эти команды позволяют преобразовать сертификаты и ключи в различные форматы, совместимые с определёнными типами серверов и программного обеспечения. Например, можно преобразовать обычный файл PEM, который используется с Apache, в файл PFX (PKCS#12) и использовать его с Tomcat или IIS. Воспользуйтесь нашим инструментом для преобразования SSL, чтобы преобразовать сертификаты без помощи OpenSSL.
- Преобразование файла DER (.crt .cer .der) в PEM:
openssl x509 -inform der -in certificate.cer -out certificate.pem
- Преобразование файлов PEM в DER:
openssl x509 -outform der -in certificate.pem -out certificate.der
- Преобразование файла PKCS#12 (.pfx .p12), содержащего приватный ключ и сертификат, в PEM:
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Можно добавить опцию -nocerts, чтобы вывести только приватный ключ, или опцию -nokeys, чтобы вывести только сертификат. - Преобразование файла сертификата и приватного ключа PEM в PKCS#12 (.pfx .p12):
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
1 комментарий:
Добрый день. понимаю, что вопрос и дата создания статьи - немного разнятся, но возник вопрос.
при попытке вывести контрольную сумму, я получаю различные ошибки.
openssl req -noout -modulus -in wms-bus1.cert.pem | openssl md5
unable to load X509 request
139739082998208:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: CERTIFICATE REQUEST
(stdin)= d41d8cd98f00b204e9800998ecf8427e
и значение stdin всегда одно.
Отправить комментарий