SSL

Материал из wiki.p3.ru
Версия от 14:54, 22 августа 2012; Eternity (обсуждение | вклад) (Новая страница: «==Полезные команды при работе с SSL-сертификатами == *Создание ключа для SSL-сертификата. opens…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Полезные команды при работе с 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.