Формат 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

  1. Импортировать в Firefox файл startssl-auth-cert.p12 (Настройки - сертификаты - мои сертификаты - импорт)

  2. Проверить успешность входа в панель https://auth.startssl.com/
    если показана ошибка сертификата повторять шаг 1

  3. На сервере сгенерировать CSR для private.key:
    openssl req -new -key ./private.key -out request.csr

  4. Содержимое нового файла request.csr вставить в панели startssl.com -> Certificates Wizard -> Web server SSL/TLS -> Skip (пропустить генерацию закрыто ключа, он у нас уже есть) -> Submit Certificate Request (CSR) -> вставить содержимое файла

  5. Готовый сертификат будет лежать в Tool Box -> Retrieve Certificate

  6. Очистить полностью файл 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`