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

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

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

Примечание

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

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

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

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

  1. Скопируйте полученные файл сертификата domain_com_integrated.crt и файл закрытого ключа domain_com.key из локального каталога в каталог /etc/nginx/ssl на сервере Nginx.
  • Если каталог /etc/nginx/ssl не существует, его можно создать с помощью команды mkdir -p /etc/nginx/ssl
  • Расположение каталогов может различаться в зависимости от способа установки; ориентируйтесь на фактическую ситуацию.
  1. Отредактируйте файл nginx.conf в корневом каталоге Nginx. Измените содержимое следующим образом:
nginx.conf
server {
listen 443 ssl;
#填写自己的域名,多个域名用空格隔开
server_name racent.com;

#填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;

#填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

Примечание

Из-за различий в версиях файл конфигурации может иметь разный синтаксис. Например: для Nginx версии ниже nginx/1.15.0 используйте listen 443 и ssl on вместо listen 443 ssl.

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

nginx -t         #验证配置文件是否正确
nginx -s reload #重载 Nginx

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

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

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

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

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

  1. Используйте функцию перенаправления Nginx, добавьте return 301 https://$host$request_uri; в server для HTTP, чтобы перенаправлять запросы HTTP на HTTPS. Измените следующее содержимое:
server {
listen 80;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}

  1. Перезапустите сервер Nginx, чтобы использовать доменное имя для доступа и реализовать автоматический переход с HTTP на HTTPS.