Сегодня мы расскажем, как установить купленный SSL сертификат на веб-сервер Apache под управлением Linux: Ubuntu, Debian или CentOS.
Файлы для установки SSL сертификата будут отображены в панели управления cloudlite (меню SSL):
.CA - файл цепочки сертификатов Центра Сертификации (Certificate Authority).
.CRT - файл сертификата для вашего сайта (сайтов).
Загрузить их на веб-сервер можно следующим образом:
Загрузите отображенные в панели файлы .ca и .crt на веб-сервер. Если ваш сервер не располагает графическим окружением рабочего стола, загрузите эти файлы сначала на другой компьютер, а затем перенесите их любым из описанных ниже способов.
Внимание: предполагается, что нужная для функционирования пара закрытый/открытый ключ генерируется на том же веб-сервере 1С-Битрикс, куда будет перенесен купленный сертификат. При условии создания ключей на другом компьютере необходимо дополнительно перенести файл закрытого ключа .key на Ваш веб-сервер, аналогично представленной ниже технологии копирования файлов сертификатов.
Перенос сертификатов с компьютера Linux/Mac OS:
Оптимальный вариант загрузки сертификатов на сервер – при помощи опции SCP, встроенной в возможность терминала компьютера:
Загрузите файлы .CA и .CRT из панели управления на локальный компьютер, потом откройте терминал и в папку, где были сохранены сертификаты (напр., Downloads):
~/Downloads
скопируйте сертификаты Вашего сайта и Центра Сертификации на веб-сервер:
scp crt.crt ca.crt user@1.22.33.44:/etc/ssl
Здесь:
scp - команда копирования файлов
mydomain.ru_crt.crt - имя загруженного из панели файла сертификата Вашего веб-сайта
mydomain.ru_ca.crt - имя загруженного из панели файла сертификата Центра Авторизации
user - имя Вашего пользователя для подключения к серверу через ssh (часто используется root)
1.22.33.44 - IP-адрес Вашего веб-сервера
/etc/ssl - директория на удаленном сервере, куда планируется сохранить загружаемые файлы.
Как перенести сертификаты с компьютера Windows:
Скачайте и установите программу WinSCP.
Запустите 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
Настраиваем веб-сервер Apache на использование SSL сертификата
После копирования файлов сертификата сайта и Центра Сертификации следует отрегулировать параметры Вашего веб-сервера Apache. Подключитесь к серверу по SSH от имени пользователя root и сделайте следующее:
Активируйте опцию SSL веб-сервером Apache:
Для Ubuntu/Debian:
a2enmod ssl
Для CentOS:
yum install mod_ssl
Откройте файл конфигурации сайта, для которого вы устанавливается SSL сертификат.
Так, если параметры веб-сайта хранятся в файле /etc/apache2/sites-enabled/000-default.conf:
nano /etc/apache2/sites-enabled/000-default.conf
Внимание: На Ubuntu/Debian файлы параметров сайтов Apache стандартно расположены в директории /etc/apache2/sites-enabled/ . На CentOS - /etc/httpd/conf.d/
Чтобы найти нужную конфигурацию, используйте команду ls/директория/конфигурация (напр. ls /etc/apache2/sites-enabled), отображающую полный список файлов в указанной директории.
И с помощью команды nano можно открыть конкретный файл (напр. nano /etc/apache2/sites-enabled/000-default.conf). Проверить, что выбранный файл на самом деле является конфигурацией Вашего сайта, можно, найдя в нем строку ServerName. Ее значение должно соответствовать домену, для которого устанавливается SSL сертификат (напр. www.mydomain.ru)
Внимание для CentOS: при необходимости Вы можете установить редактор nano с помощью команды yum install nano
Добавьте указанные ниже параметры в открытый файл настроек:
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
Здесь:
/etc/ssl/mydomain.ru_crt.crt - путь к файлу сертификата Вашего сайта
/etc/ssl/mydomain.ru_ca.crt - путь к файлу цепочки сертификатов Центра Сертификации (CA)
/etc/ssl/mydomain.ru_key.key - путь к файлу Вашего закрытого ключа
Внимание: если вы хотите, чтобы после установки SSL сертификата Ваш сайт был доступен только по безопасному протоколу https (порт 443), настройте файл его конфигурации аналогично примеру 1. Чтобы оставить сайт доступным по незащищенному протоколу http (порт 80), ориентируйтесь на пример 2.
Изменения отмечены жирным шрифтом.
Пример 1 (только HTTPS):
<VirtualHost *:443> # The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
</VirtualHost>
Пример 2 (HTTPS + HTTP):
1. <VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
</VirtualHost>
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
Теперь перезапустите сервис apache:
Для Ubuntu/Debian:
/etc/init.d/apache2 restart
Для CentOS:
apachectl 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 - партнерская программа