Перевод: The Most Common OpenSSL Commands
Одна из наиболее многофункциональных утилит SSL - это OpenSSL, которая является реализацией протокола SSL с открытым исходным кодом. Существуют версии OpenSSL почти для каждой платформы, включая Windows, Linux и Mac OS X. OpenSSL чаще всего используется для создания запросов на подпись сертификата и приватных ключей для множества различных платформ, включая Apache. Однако, есть ещё сотни различных функций, которые позволяют увидеть информацию из запроса на сертификат или из сертификата, сравнить хэш MD5 сертификата и приватного ключа (чтобы убедиться в том, что они соответствуют друг другу), проверить, что сертификат веб-сайта установлен правильно, преобразовать сертификат в другой формат. Скомпилированную версию OpenSSL для Windows можно найти здесь.
Если вам не хочется разбираться с OpenSSL, то многое из этого можно сделать при помощи наших инструментов для сертификатов SSL. Ниже мы привели наиболее часто используемые команды 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