Установка и переустановка ssl сертификатов. Разбор полетов.

Всем привет! Сегодня хочу немного поговорить об установке ssl сертификатов на сервер, а также их переустановке. Рассматривать буду на примере серверов apache и nginx. Достаточно подробно процесс описан на сайте http://firstwiki.ru/index.php/Установка_SSL_сертификата_на_домен. Правда упущен один важный, на мой взгляд, момент. Давайте разбираться.

Рассмотрим пример конфига apache:
<VirtualHost 10.0.0.1:443>
DocumentRoot /home/user/data/www/domain.com
ServerName domain.com
SSLEngine on
SSLCertificateFile /path/to/domain.crt
SSLCertificateKeyFile /path/to/domain.key
SSLCACertificateFile /path/to/ca.crt
</VirtualHost>

А теперь обратим внимание на строки:
SSLCertificateFile /path/to/domain.crt
SSLCertificateKeyFile /path/to/domain.key
SSLCACertificateFile /path/to/ca.crt

Сверху вниз указаны: файл сертификата, ключ и файл корневого сертификата.
Теперь давайте взглянем на конфиг nginx:

server {
listen 10.0.0.1:443;
server_name domain.com;
ssl on;
ssl_certificate /path/to/domain.crt;
ssl_certificate_key /path/to/domain.key;
}

А вот здесь файла всего два! Встроках:

ssl_certificate /path/to/domain.crt; ssl_certificate_key /path/to/domain.key;

это файл сертификата и файл ключа соответственно.
И вот здесь возникает вопрос! Там три параметра, тут два, почему и как быть? Мало того, сертификаты обычно поставляются в виде нескольких файлов, а именно: сертификат, промежуточный сертификат, корневой сертификат, ключ. Возможно наличие дополнительных файлов, например сертификатов.

Если открыть например файл сертификата, то мы увидим, что между строками -----BEGIN CERTIFICATE----- и -----END CERTIFICATE----- располагается последовательность символов. По сути сами файлы представляют собой текстовые документы, только и всего.

Но... файлов 4, а в конфиге apache 3! nginx вообще 2 ограничился! Что делать? Вот эта та деталь, которая почему-то не выделяется в мануалах, проходится вскольз, типа все итак понятно. А если это первый раз, что делать? Итак, конфигурируем файлы для apache и nginx сразу, сложим в папку и нам не будем страшен даже переезд с одного сервера на другой. На мой взгляд, логичнее и удобнее делать так:

создаем файл с расширением - crt - и в нем будет наш сертификат.

создаем файл с расширением key - и в нем будет ключ.

создаем файл с расширением ca - и в нем будет два сертификата - сначала вставляем промежуточный, затем корневой ( этот файл только для apache)

создаем файл с расширением crtca - и в него вставляем сразу три сертификата - наш сертификат, промежуточный и корневой (этот файл только для nginx)

Обратите внимание что последовательность сертификатов в файлах должна быть именно такой. Как только содержимое файлов будет заполнено, настраивайте конфиг вашего сервера (у apache - это обычно секция виртуальных хостов, а у nginx в корневом конфиге - на FreeBSD это /usr/local/etc/nginx/nginx.conf, Linux - /etc/nginx/nginx.conf). Теперь перезапускаем веб-сервер и если все успешно, сертификат должен заработать. Если же сертификат просто нужно переустановить, то делаем еще проще. Нужно просто перезаписать уже имеющиеся файлы, разобравшись, какой установлен веб сервер и в каких файлах, что расположено. После перезаписи просто перезапускаем веб сервер.

Ну вот вроде и все. Технические подробности, можно также посмотреть на сайте, указанно в начале статьи. Если появятся вопросы, пишите и я с радостью отвечу.

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

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