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

Установка 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.