BOGACHEV.BIZ / KNOWLEDGE BASE

Technical Guidebook

← К каталогу публикаций

Установка RapidSSL сертификата

Для начала необходимо создать приватный ключ.
Private key - специальный 2048 битный ключ для шифрования по алгортму RSA.
Он необходим для работы с SSL сертификатами.

Генерируем приватный ключ:

openssl genrsa -des3 -out /root/serts/private.key 2048
Generating RSA private key, 2048 bit long modulus
........................++++++
......++++++
e is 65537 (0x10001)
Enter pass phrase for /root/serts/private.key:
Verifying - Enter pass phrase for /root/serts/private.key:

Далее проверим, создан ли ключ, прочитав файл:

cat /root/serts/private.key

<RSA_PRIVATE_KEY>

Полученный файл private.key - это и есть необходимый приватный ключ.

Обязательно сделайте резервную копию этого ключа! ​
В случае его утраты, сертификат перестанет работать.​

Генерация CSR-запроса

CSR-запрос необходим для получения сертификата в соответствующем сертификационном центре. Для его генерации выполните в консоли сервера команду:

openssl req -new -key /root/serts/private.key -out /root/serts/request.csr

/root/serts/private.key - путь к файлу приватного ключа, созданного на предыдущем шаге.
/root/serts/request.csr - путь по которому будет создан файл запроса сертификата

Команда запустит диалог в котором Вам потребуется ответить на несколько вопросов.
Обратим внимание, что на первый запрос «Enter pass phrase for /root/serts/private.key» необходимо ввести пароль, выбранный в Шаге 1, а на последние два запроса «A challenge password» и «An optional company name» отвечать не нужно.
Пример сессии представлен ниже:

Enter pass phrase for /root/serts/private.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]:Moscow-State
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Some hosting
Organizational Unit Name (eg, section) []:Technical Support Department
Common Name (eg, YOUR name) []:www.example.com
Email Address []:support@example.com
Please enter the following `extra` attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Проверяем:

cat /root/serts/request.csr

-----BEGIN CERTIFICATE REQUEST-----
MIIB+jCCAWMCAQAwgbkxCzAJBgNVBAYTAlJVMRUwEwYDVQQIEwxNb3Njb3ctU3Rh
dGUxDzANBgNVBAcTBk1vc2NvdzEVMBMGA1UEChMMQmVzdCBIb3N0aW5nMSUwIwYD
VQQLExxUZWNobmljYWwgU3VwcG9ydCBEZXBhcnRtZW50MRwwGgYDVQQDExN3d3cu
YmVzdC1ob3N0aW5nLnJ1MSYwJAYJKoZIhvcNAQkBFhdzdXBwb3J0QGJlc3QtaG9z
dGluZy5ydTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9QC5bmg6QjfVREpt
RaswDGEbFeZj0BcIG9DzDWsQ3h3N7xOm8d4lfOGIQYsSdZPgF53I1Brsi+ilcRrd
FtZpstAlkLHPkdJc2BuzPKshPoZiXcqBV45oQ+wOWRIg/2rzjxxPnuL53TAayVsC
zJWL131yLM2kdFfY1KpDgILNVscCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAG8B
xsq7r61UTB9822e7Cez6/VXVa5XrPVtZZ6RdDIHAbQAh9WYG3i5s2LKM82qAYa0b
T2+Lv4maZcd0cntica3kLDbDE/usDESvlshVhW64tv4L+upgRgJkTaPaXmsJsOwP
D4WfNUrz+0RgSp5ypbv+e9E7or9Tkm3UXdTOFbln
-----END CERTIFICATE REQUEST-----

Полученный файл является CSR запросом. Его Вы должны ввести в форме заявки для последующего получения сертификата.

Установка полученного сертификата

В данном примере будет рассматриваться установка сертификата на сервер с nginx.
После получения RapidSSL сертификата выполняем следующие действия.

  1. Создаем файл ssl.crt и копируем в него полученный сертификат, который нам прислали в теле письма. (X.509)

    Удостоверьтесь, что есть 5 дефисов, в обе стороны от BEGIN CERTIFICATE и END CERTIFICATE и отсутствуют пропуски, лишние символы и табуляции.

  2. Необходимо скачать RapidSSL Intermediate CA Bundle (ссылка будет указана в письме либо тут)

  3. Копируем и вставляем его в новый файл, который называем Intermediate.crt
    Далее нам потребуется cоединить SSL и Intermediate CA Bundle

    (НЕ ЗАБУДЬТЕ СРАВНИТЬ МЕТОД ШИФРОВАНИЯ И СКАЧАТЬ НЕОБХОДИМЫЙ CA Bundle)

  4. Выполняем слияние следующей командой:

cat intermediate.crt >> ssl.crt

И переименовываем файл в example.crt (как удобнее)

  1. Помещаем приватный ключ в папку с созданным сертификатом и указываем пути в конфиге nginx

  2. Вносим изменения в конфиг nginx

server {
listen *:80;
server_name example.com www.example.com;
rewrite ^(.*)$ https://$server_name$1 permanent;
}
server {
listen 443;
server_name example.com;
ssl on;
ssl_certificate /etc/ssl/example.com/example.com.bundled.crt;
ssl_certificate_key /etc/ssl/example.com/example.com.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!ADH:!MD5;
access_log /srv/www/example.com/logs/access.log main;
error_log /srv/www/example.com/logs/error.log info;
root /srv/www/example.com/public_html;
charset utf-8;
location / {
index index.php index.html;
root /srv/www/example.com/public_html;
}
error_page 404 /404.php;
location /404.php {
internal;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 1w;
log_not_found off;
}
location ~ /\.ht.+$ {
return 404;
}
location ~ ^/(css|js|img).+\.php$ {
return 404;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/example.com/public_html/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}