Openssl
Формат PEM – по-умолчания в openssl, данные в base64,
обычный текст с маркерами -----BEGIN BLABLA KEY/CERTIFICATE-----
.
Формат DER – данные в бинарном виде.
Сгенерировать приватный ключ
Зашифрованный 3DES: openssl genrsa -des3 -out privatekey_enc.pem 2048
Вместо -des3 может быть -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea
Открытый, без пароля: openssl genrsa -out privatekey.pem 2048
Расшифровать ключ
openssl rsa –in privatekey_enc.pem -out privatekey.pem
Зашифровать ключ
openssl rsa -in privatekey.pem -des3 -out privatekey_enc.pem
Сконвертировать PEM в DER
openssl rsa -in privatekey.pem -outform DER -out privatekey.der
Сконвертировать DER в PEM
openssl rsa -in privatekey.der -inform DER -outform PEM -out privatekey.pem
Сформировать CSR
openssl req -new -key ./privatekey.pem -out my.csr
Сравнить фингерпринты
openssl rsa -noout -modulus -in /rsa.key
openssl x509 -noout -modulus -in /crt.crt
Вся инфа о сертификате
openssl x509 -noout -text -in /cert.pem
Вывести информацию о сертификате на удаленном сервере
openssl s_client -connect paypal.com:443
полная информация о сертификатеopenssl s_client -connect paypal.com:443 2>/dev/null | openssl x509 -noout -text
ИНСТРУКЦИЯ что делать при истичении сертификата.
private.key - ключ который неизменен всегда
startssl.crt - два сертификата в одном файле. Первый это сертификат выданный для домена, второй это промежуточный сертификат регистратора class 1
-
Импортировать в Firefox файл
startssl-auth-cert.p12
(Настройки - сертификаты - мои сертификаты - импорт) -
Проверить успешность входа в панель https://auth.startssl.com/
если показана ошибка сертификата повторять шаг 1 -
На сервере сгенерировать CSR для private.key:
openssl req -new -key ./private.key -out request.csr
-
Содержимое нового файла request.csr вставить в панели startssl.com -> Certificates Wizard -> Web server SSL/TLS -> Skip (пропустить генерацию закрыто ключа, он у нас уже есть) -> Submit Certificate Request (CSR) -> вставить содержимое файла
-
Готовый сертификат будет лежать в Tool Box -> Retrieve Certificate
-
Очистить полностью файл startssl.crt и вставить туда содержимое сертификата полученного в Retrieve Certificate
и соеденить его с промежуточным сертификатом регистратора, так чтобы внутри файла был первым полученный сертификат,
а вторым был промеждуточный сертификат sub.class1.server.ca.pem https://www.startssl.com/certs/sub.class1.server.ca.pem
В итоге файл startssl.crt
должен выглядеть так:
-----BEGIN CERTIFICATE-----
тут сертификат полученный в тулбоксе в меню
ретрив сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
тут содержимое файла sub.class1.server.ca.pem
скачанное по ссылке
-----END CERTIFICATE-----</pre>
Конфиг nginx:
server { listen 443 ssl; server_name .5e100.net; ssl_certificate /etc/nginx/ssl/5e100.net/5e100.net.crt; ssl_certificate_key /etc/nginx/ssl/5e100.net/5e100.net.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_stapling on; }</pre> #### При добавлении mod_ssl в apache [error] (2)No such file or directory: Cannot create SSLMutex with file /etc/apache2/${APACHE_RUN_DIR}/ssl_mutex Нужно дописать в /etc/apache2/envvars: `export APACHE_RUN_DIR=/var/run/apache2`