18.05.2015

openssl команды


Полезные команды при работе с 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/emailAddress=root@example.com/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="root@example.com

Убрать пароль с ключа (необходимо когда сертификат ставится руками в конфигурацию 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-сертификат, выданный при регистрации сервера?
# cd /usr/local/etc/apache22/ # openssl req -new -newkey rsa:1024 -nodes -keyout server.key -x509 -days 5000 -out server.crt
Далее отвечаете на вопросы и перезапускаете сервер Apache.