Сертификаты

Еще раз про сертификаты для сервера.

Если что то не выходит делаем следующие проверки.

1. ключ подходит с серитфикату.

Проверяем MD5 ключа и сертификата:

# openssl rsa -noout -modulus -in serov.1.key | openssl md5
(stdin)= 777711dbbab90e1b12e922bbdbde6716
# openssl x509 -noout -modulus -in serov.crt | openssl md5
(stdin)= 910a2dd2db8510094383563ed18c056d

Если строчки разные, то ключ не подходит к сертификату.

Ну и можно посмотреть что внутри

  • Check a Certificate Signing Request (CSR)
    openssl req -text -noout -verify -in CSR.csr
  • Check a private key
    openssl rsa -in privateKey.key -check
  • Check a certificate
    openssl x509 -in certificate.crt -text -noout

 

 

Сертификаты

С таким количеством установки сертификатов решил написать небольшую статью.

1. генерация сертификата

openssl genrsa -des3 -out serov.key 2048
openssl req -new -key serov.key -out serov.csr

запоминаем пароль, отправляем файл  serov.csr организации выпускающая сертификаты.

 

после получаем от корневого сертификата файлы. (в моем случае их 4)

корневой
промежуточный 1
промежуточный 2
сертификат домена

 

переименовываем их в

4.crt
3.crt
2.crt
1.crt

склеиваем

cat 4.crt 3.crt 2.crt 1.crt  > serov.crt

снимаем пароль с файла serov.key

openssl rsa -in serov.key -out serov.key

копируем в одну папку файлы serov.crt  serov.key

в nginx пишем путь до них

 ssl_certificate /etc/httpd/ssl/serov.crt;
 ssl_certificate_key /etc/httpd/ssl/serov.key;

между httpd и nginx сертификат не надо ставит, конечно если на одном сервера.

перезапускаем nginx

service nginx restart

проверяем дату

echo | openssl s_client -connect serov.eu:443 2>/dev/null | openssl x509 -noout -dates

Готово

PS. при склеивании сертификатов в crt, первый идет сертификат домена, потом промежуточные и в конец корневой.