SSL on CentOS 5

Создание сертификатов для SSL

Создание ключа

Первым делом необходимо создать приватный ключ (private key):

# openssl genrsa -des3 -out domain.ru.key 2048
Generating RSA private key, 2048 bit long modulus
……………………………………..+++
……………………………….+++
e is 65537 (0x10001)
Enter pass phrase for domain.ru.key:
Verifying — Enter pass phrase for domain.ru.key:

При создании ключа необходимо указать ключевую фразу (и запомнить ее).

Создание подписанного сертификата

После того, как сгенерирован ключ, можно создавать самоподписанный сертификат (CSR — Certificate Signing Reques):

# openssl req -new -key domain.ru.key -out domain.ru.csr
Enter pass phrase for domain.ru.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Russia
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Domain.Ru
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:domain-2.ru
Email Address []:ssl@domain-2.ru

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Удаление пароля из ключа

Неприятной особенностью ключа с паролем является то, что Apache или nginx будет регулярно спрашивать пароль при старте. Очевидно, что это не очень удобно (если только кто-то не находится постоянно рядом на случай перезагрузки или аварийной остановки). Для удаления ключа из пароля необходимо выполнить следующее:

# cp domain.ru.key domain.ru.key.orig

# openssl rsa -in domain.ru.key.orig -out domain.ru.key
Enter pass phrase for domain.ru.key.orig: <пароль-который-указывался-при-создании-domain.ru.key>
writing RSA key

Генерация SSL сертификата

Далее, создаем сам SSL сертификат:

# openssl x509 -req -days 365 -in domain.ru.csr -signkey domain.ru.key -out domain.ru.crt
Signature ok
subject=/C=RU/ST=Russia/O=Domain.Ru/CN=domain-2.ru/emailAddress=ssl@domain-2.ru
Getting Private key

Теперь есть все, что необходимо для создания SSL-соединений.

Правильное расположение SSL сертификатов

Заключительным шагом в создании SSL сертификата будет распределение полученных файлов в соответствующие директории. Во-первых, копируем сам сертификат:

# cp domain.ru.crt /etc/pki/tls/certs/

Во-вторых, копируем ключ:

# cp domain.ru.key /etc/pki/tls/private/

И в-третьих, удаляем, все то, что было создано в текущей директории:

# rm domain.ru.crt domain.ru.key domain.ru.csr domain.ru.key.orig

Добавляем сертификаты в Apache

Редактируем файл /etc/httpd/conf.d/ssl.conf и меняем..

SSLCACertificateFile /etc/pki/tls/certs/domain.ru.crt
SSLCACertificateKeyFile /etc/pki/tls/domain.ru.key

Сохраняем файл и перезапускаем апач.

# service httpd restart

2 комментария к “SSL on CentOS 5

  1. Жили как-то до этого без всяких сертификатов, сейчас приходится бегать по всяким хострадарам закинув язык за плечи, искать хостинг с недорогим или бесплатным s-s-l.

    1. Мамочки, такие старые посты ещё кто-то читает. Спасибо. ^^»

      На мой скромный взгляд сейчас ситуация гораздо лучше. С появлением Let’s Encrypt отпала необходимость в самоподписанных сертификатах. И на данный момент 99% хостеров уже предлагают их сразу, так как данная функция добавлена во все популярные хостинг-панели.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *