Перейти к основному содержимому

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

Вы можете установить SSL-сертификат на сервер Apache, чтобы сервер Apache поддерживал безопасный доступ по HTTPS. В этой статье описывается, как установить SSL-сертификат на сервер Apache.

Примечание

В этой статье в качестве примера используется версия Apache Apache/2.4.58(ubuntu). Перед установкой убедитесь, что порт 443 не занят. Если порт 443 уже используется, при установке сертификата привяжите другой порт.

Получение сертификата​

  1. После выпуска сертификата мы выдадим вам файл сертификата (.zip) в сжатом формате. В архиве находятся четыре папки, соответствующие четырём форматам сертификатов: Tomcat, Nginx, IIS, Apache; для сервера Apache необходимо использовать сертификат из папки Apache.
  2. Папка Apache будет содержать три файла:
  • domain_com.crt файл сертификата
  • domain_com.key файл закрытого ключа
  • domain_com.ca-bundle файл цепочки сертификатов

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

  1. Скопируйте полученные файл сертификата domain_com.crt, файл закрытого ключа domain_com.key и файл цепочки сертификатов domain_com.ca-bundle из локального каталога в каталог /etc/apache2/ssl сервера Apache. Примечание:
  • Если каталог /etc/apache2/ssl не существует, его можно создать с помощью команды mkdir -p /etc/apache2/ssl
  • Между разными версиями могут быть отличия, в некоторых случаях каталог Apache может называться /etc/httpd
  1. Поскольку Apache читает только файлы конфигурации из sites-enabled, необходимо создать символическую ссылку
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf
  1. Отредактируйте файл /etc/apache2/sites-available/default-ssl.conf и измените следующее содержимое:
<VirtualHost *:443>
DocumentRoot /var/www/html
#启用 SSL 功能
SSLEngine on
#证书文件的路径
SSLCertificateFile /etc/apache2/ssl/domain_com.crt
#私钥文件的路径
SSLCertificateKeyFile /etc/apache2/ssl/domain_com.key
#证书链文件的路径
SSLCertificateChainFile /etc/apache2/ssl/domain_com.ca-bundle
</VirtualHost>

После изменения сохраните файл конфигурации и выполните следующую команду:

a2enmod ssl       #加载ssl模块,如果是替换证书可以忽略
apache2ctl configtest #检测配置文件是否报错
apache2ctl restart #重启Apache使配置生效

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

Введите доменное имя, привязанное к SSL-сертификату, в адресную строку браузера, чтобы проверить, успешно ли установлен ваш SSL-сертификат. В случае успеха в адресной строке браузера отобразится значок замка безопасности, нажав на который можно просмотреть информацию о сертификате.

Эффект SSL-сертификата

Настройка безопасности автоматического перенаправления HTTP на HTTPS (необязательно)​

Если вам необходимо автоматически перенаправлять HTTP-запросы на HTTPS, вы можете выполнить следующие действия:

  1. Введите в командной строке a2enmod rewrite, чтобы включить модуль перенаправления.
  2. Затем откройте файл конфигурации http, например: /etc/apache2/sites-available/000-default.conf, и добавьте в файл конфигурации следующее содержимое:
<VirtualHost *:80>
# 新增
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
  1. Перезапустите сервер Apache, после чего можно будет использовать доменное имя для доступа, при этом HTTP будет автоматически перенаправляться на HTTPS.