Статья давно не обновлялась, поэтому информация могла устареть.
Полезные команды при работе с SSL-сертификатами
- Создание ключа для SSL-сертификата.
openssl req -batch -noout -new -newkey rsa:2048 -nodes -keyout cert.key
В случае утери пароля или файла ключа придется заказывать пересоздание сертификата.
- Генерация CSR-запроса:
openssl req -new -key cert.key -out cert.csr
Имя домена на который создается запрос прописывается в Common Name - example.com, A challenge password и An optional company name вводить не нужно (просто нажимаем enter).
- Создание ключа и запроса с данными одной командой:
openssl req -batch -new -newkey rsa:2048 -nodes -keyout cert.key -subj '/C=RU/ST=Moscow/L=Moscow/O=Jingel Inc/OU=Research team/[email protected]/CN=example.com' -out cert.csr
- Создание ключа и самоподписанного сертификата одной командой:
openssl req -newkey rsa:1024 -nodes -keyout server.key -out server.crt -x509 -days 3650 -subj \ "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=example.com/emailAddress="[email protected]
- Убрать пароль с ключа (необходимо когда сертификат ставится руками в конфигурацию Apache иначе он при запуске будет просить пароль):
openssl rsa -in cert.key -out cert.key
и вводим пароль с консоли (либо -passin pass:supersecretpassw0rd что менее секурно так как пароль сохраняется в .history)
- Посмотреть данные CSR:
openssl req -noout -text -in cert.csr
- Данные сертификата (проверить кем выдан например):
openssl x509 -noout -text -in cert.crt
- Проверить, что ключ соответствует сертификату:
openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in cert.key | openssl md5
Два значения должны совпадать.
- Узнать длину запроса:
echo '(' `openssl req -noout -modulus -in cert.csr | cut -d'=' -f2 | wc -c` '-1)*4' | bc
- Проверить выдачу HTTPS:
openssl s_client -connect localhost:443 -state -debug GET / HTTP/1.0
Для почты:
openssl s_client -connect localhost:993 -showcerts
- На операционной системе Windows (в IIS в частности) используется PFX-контейнер для сертификата, его можно создать из файлов ключа и сертификата командой:
openssl pkcs12 -export -in certificate.crt -inkey certificate.key -out certificate.pfx
Как изменить ssl-сертификат, выданный при регистрации сервера?
# openssl req -new -newkey rsa:1024 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 5000 -out /etc/pki/tls/certs/localhost.crt
Далее отвечаете на вопросы и перезапускаете сервер Apache.