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

Материал из ISPWiki
Перейти к: навигация, поиск


Эта страница расскажет как установить SSL сертификат на веб сайт и что для этого требуется.

Для установки сертификата необходим секретный ключ и сертификат. Однако, сам по себе сертификат на доменное имя не будет считаться доверенным в браузере. Его нужно связать с корневым сертификатом центра сертификации с помощью одного или нескольких промежуточных сертификатов (цепочки сертификатов).

Секретный ключ генерируется во время заказа сертификата и автоматически сохраняется в личном кабинете. Сертификат и цепочку сертификатов отправляет центр сертификации на email административного контакта. Дополнительно данные сертификата сохраняются в личном кабинете, там же где и ключ, на вкладке "Информация" в разделе SSL сертификаты.

Ssl1-1-1.png

Установка SSL сертификата с помощью ISPmanager

Если сервер находится под управлением ISPmanager, то установить SSL сертификат можно непосредственно через веб интерфейс панели управления.

Установка сертификата в ISPmanager выполняется в два этапа:

1. В разделе SSL сертификаты создается сертификат и вводятся данные ключа, сертификата и цепочки сертификатов.

Ssl2-2.png

По кнопке «Создать» запускается мастер добавления сертификата, состоящий из двух шагов.

Шаг 1. Выбор типа сертификата. Выберите «существующий».

Шаг 2. Создание сертификата. Введите данные сертификата, ключ и цепочку сертификатов.

2. В разделе WWW-домены SSL сертификат устанавливается на домен.

В разделе WWW-домены нажмите Изменить, если ваш домен уже создан. Если домен еще не создан в панели управления, нажмите Создать. На открывшейся форме отметьте галку «Защищенное соединение (SSL)», в поле «SSL-сертификат» выберите ранее созданный сертификат.

Ssl3-3.png

После нажатия кнопки ОК на форме создания/редактирования WWW-домена SSL сертификат будет установлен на доменное имя.

Ручная установка SSL сертификата

Установка SSL сертификата через командную оболочку (cli) заключается в том, чтобы записать сертификат, ключ и цепочку в файлы и определить их в конфигурации веб сервера. Директивы подключения сертификата различаются в зависимости от веб сервера. Определить какой веб сервер обрабатывает SSL позволяет команда

ss -napt | grep 443

команда покажет какой веб сервер принимает соединения при обращении к доменам по протоколу httpS

Nginx

Чтобы установить SSL сертификат на домен, работающий на Nginx, необходимо отредактировать файл конфигурации доменного имени. Иногда конфигурация доменов определяется в основном файле конфигурации Nginx (/etc/nginx/nginx.conf), чаще каждый домен имеет отдельный файл конфигурации, например /etc/nginx/vhosts/username/domain.com

Откройте файл, где определяются настройки доменного имени.

server {
	server_name domain.com www.domain.com;
 …

}

Если SSL еще не включен для домена, то включаем изменив директиву listen и добавив директиву ssl on

listen IP-адерс:443;	
ssl on;

Директивы ssl_certificate_key и ssl_certificate определяют пути до файла ключа и сертификата. Цепочка сертификатов записывается в файл сертификата. Рассмотрим как составить цепочку сертификатов для Comodo Positive SSL. Центр сертификации присылает файлы domain.crt, PositiveSSLCA2 и AddTrustExternalCARoot. Цепочкой сертификата будет содержание файла PositiveSSLCA2 + AddTrustExternalCARoot. В итоге файл domain.crt должен содержать сертификат домена + сертификаты PositiveSSLCA2 + AddTrustExternalCARoot.

Для повышения безопасности определим используемые шифры и протоколы с помощью директив ssl_ciphers и ssl_protocols

Пример файла конфигурации домена в Nginx

server {
	server_name domain.com www.domain.com;
	ssl on;
	ssl_certificate "/var/www/httpd-cert/test/domain.com.crt";
	ssl_certificate_key "/var/www/httpd-cert/test/domain.com.key";
	ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	listen IP-адрес:443;	
	add_header Strict-Transport-Security "max-age=31536000;";
	charset off;
	index index.php;
	disable_symlinks if_not_owner from=$root_path;
	set $root_path /var/www/test/data/www/isptst.example.com;
	root $root_path;
	
	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
	}
	location @php {
		…
	}
} 

Перед перезапуском веб сервера рекомендуется выполните nginx -t , команда укажет на синтаксические ошибки в файлах конфигурации, если они существуют.

Перезапустите Nginx

systemctl restart nginx

Apache

Чтобы установить SSL сертификат на домен, работающий на Apache, необходимо отредактировать файл конфигурации доменного имени. Иногда конфигурация доменов определяется в основном файле конфигурации Apache - /etc/apache2/apache2.conf (Debian), /etc/httpd/conf/httpd.conf (CentOS). Чаще каждый домен имеет отдельный файл конфигурации, например /etc/httpd/conf/vhosts/username/domain.com

Откройте файл конфигурации домена, в секцию <VirtualHost IP-адрес:443> домена добавьте следующие директивы

	<VirtualHost IP-адрес:443>
	SSLEngine on
	SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
	SSLCertificateFile /etc/ssl/ssl.crt/domain.crt
	SSLCACertificateFile /etc/ssl/ssl.crt/domain.ca-bundle
	SSLHonorCipherOrder on
	SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2
	SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
	…..
	</VirtualHost>

Обратите внимание, цепочка сертификатов записывается в отдельный файл, который определяется директивой SSLCACertificateFile.

Перед перезапуском веб сервера рекомендуется выполните apachectl -t , команда укажет на синтаксические ошибки в файлах конфигурации, если они существуют.

Перезапустите Apache

apachectl graceful