Когда вы сгенерировали CSR-запрос и приобрели SSL сертификат, воспользуйтесь этой инструкцией по установке сертификата на веб-сервер Nginx под управлением Linux: Ubuntu, Debian или CentOS.
После заказа SSL сертификата файлы для его установки отразятся в панели управления (меню SSL): .CA - файл сертификата Центра Сертификации (Certificate Authority). .CRT - файл сертификата вашего веб-сайта.
Как загрузить нужные файла на веб-сервер
Прежде всего загрузите файлы .ca и .crt на веб-сервер. При отсутствии графического окружения рабочего стола на сервере загрузка файлов может осуществиться на другой компьютер. Впоследствии их можно будет перенести.
Внимание: предполагается, что нужная для применения пара закрытый/открытый ключ была создана на том же веб-сервере, куда будет перенесен приобретенный сертификат. При создании ключей на другом сервере следует также перенести файл закрытого ключа .key на ваш веб-сервер (аналогично описанной ниже процедуре копирования файлов сертификатов).
Как переносить сертификаты с компьютера Linux/Mac OS:
Проще всего – при помощи опции SCP, встроенной в возможность терминала вашего компьютера:
Скачайте файлы .CA и .CRT на локальный компьютер. Откройте терминал и папку с сохраненными сертификатами (напр., Downloads):cd ~/Downloads
Скопируйте сертификаты вашего сайта и Центра Сертификации на веб-сервер:
scp mydomain.ru_crt.crt mydomain.ru_ca.crt user@1.1.1.1:/etc/ssl
Здесь:
scp - команда для копирования файлов
mydomain.ru_crt.crt - имя загруженного из панели файла сертификата вашего веб-сайта
mydomain.ru_ca.crt - имя загруженного из панели файла сертификата Центра Авторизации
user - имя вашего пользователя для подключения к серверу через ssh (часто используется root)
1.1.1.1 - IP-адрес вашего веб-сервера
/etc/ssl - директория на удаленном сервере, куда следует сохранить загружаемые файлы.
Как переносить сертификаты с компьютера Windows:
Скачайте, установите и включите программу WinSCP. В открывшемся окне наберите данные для подключения к вашему серверу по SSH. Слева в окне отразятся файлы на локальном компьютере, справа - на подключенном удаленном сервере. Выберите или создайте директорию, куда нужно сохранить сертификаты, в правой части окна. Перетащите файлы .CA и .CRT в эту директорию из левой части окна.
Внимание: можно перенести файл закрытого ключа (.key) для удобства в ту же директорию, куда вы скопировали файлы сертификатов. Если вы не делаете этого, просто запомните путь до этого файла и потом укажите его в файле конфигурации Apache вместо пути, рассмотренном в нашем примере.
Если закрытый ключ .key сгенерирован прямо на сервере, то для его копирования в другую директорию подойдет команда:
cp /home/root/private.key /etc/ssl/private.key
Здесь:
cp - команда копирования
/home/root/ - путь до файла ключа
private.key - имя файла ключа
/etc/ssl/private.key - путь, по которому необходимо скопировать файл ключа
Вы можете удалить файл ключа из старого расположения такой командой:
rm /home/root/private.key
Как настроить веб-сервер Nginx на применение SSL сертификата
После копирования файлов сертификата сайта и Центра Сертификации вы должны отредактировать параметры вашего веб-сервера Nginx. Подключитесь к вашему серверу по SSH от имени пользователя root и выполните такие действия:
1. Объедините файлы сертификата Центра Сертификации (.CA) и сертификата вашего веб-сайта (.CRT) в один документ:
cat /etc/ssl/mydomain.ru_crt.crt /etc/ssl/mydomain.ru_ca.crt >> mydomain.crt
2. Откройте файл конфигурации сайта, для которого устанавливается SSL сертификат. Если, к примеру, параметры веб-сайта хранятся в файле /etc/nginx/sites-enabled/default:
nano /etc/nginx/sites-enabled/default
Внимание: На Ubuntu/Debian файлы параметров сайтов Nginx обычно располагаются в директории /etc/nginx/sites-enabled/ . На CentOS стандартное расположение - /etc/nginx/conf.d/
Для поиска интересующей конфигурации подойдет команда ls /директория/конфигураций (напр. ls /etc/nginx/sites-enabled), отображающая полный список файлов в нужной директории.
Теперь с помощью команды nano можно открыть определенный файл (напр. nano /etc/nginx/sites-enabled/default). Чтобы проверить, что открытый файл является конфигурацией вашего сайта, найдите в нем строку server_name. Ее значение должно соответствовать домену, для которого вы устанавливаете SSL сертификат (напр. www.mydomain.ru)
Внимание для CentOS: если на сервере не установлен редактор nano, используйте такую команду для его установки:
используйте такую команду для его установки:
yum install nano
Затем добавьте приведенные ниже параметры в открытый файл конфигурации:
listen 443 ssl;
ssl_certificate /etc/ssl/mydomain.crt;
ssl_certificate_key /etc/ssl/private.key;
Здесь:
/etc/ssl/mydomain.crt - путь до файла сертификатов вашего сайта и центра сертификации
/etc/ssl/private.key - путь к файлу вашего закрытого ключа
Внимание: если вы хотите, чтобы после установки SSL сертификата ваш сайт был доступен только по безопасному протоколу https (порт 443), отредактируйте файл его конфигурации по аналогии с Примером 1. Если же нужно, чтобы сайт также оставался по-прежнему доступен по незащищенному протоколу http (порт 80) – см. Пример 2
(изменения выделены жирным шрифтом).
Пример 1 (только HTTPS):
server {
listen 443 ssl default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name www.mydomain.ru;
ssl_certificate /etc/ssl/mydomain.crt;
ssl_certificate_key /etc/ssl/private.key;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
Пример 2 (HTTPS + HTTP):
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl;
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name www.mydomain.ru;
ssl_certificate /etc/ssl/mydomain.crt;
ssl_certificate_key /etc/ssl/private.key;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
Перезапустите сервис nginx:
Ubuntu/Debian:
/etc/init.d/nginx restart
CentOS:
service nginx restart
Если на сервере настроен файрвол iptables, нужно разрешить входящие подключения по протоколу https (порт 443) для вашего файрвола. Следуйте документации к вашей ОС, т.к. в разных дистрибутивах Linux работа с iptables осуществляется различно. Несколько примеров:
Ubuntu 16.04:
ufw allow 443/tcp
Debian:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
CentOS:
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Как проверить настройки
После этого SSL сертификат установлен на веб-сервер Apache. Чтобы проверить правильность настроек, откройте ваш-веб сайт в браузере по протоколу https (например, https://mydomain.ru). При верной установке сертификата в адресной строке вашего браузера появится иконка замка, при клике на нее отразится информация о приобретенном вами SSL сертификате.
techsupport@cloudlite.ru - служба техподдержки
sales@cloudlite.ru - вопросы по услугам, оплате, документам и партнерству
partner@cloudlite.ru - партнерская программа