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

При выпуске сертификата у любого CA клиент получает два файла — сертификат (.crt) и приватный ключ (.key). Первым делом их нужно поместить на веб-сервер, обычно для этого используется директория /etc/ssl, скорпируйте эти файлы в неё, либо в любое другое место (тогда нужно будет исправить пути в конфиге nginx).

$ ls -1 /etc/ssl
koobik.net.crt
koobik.key

Сначала проверим, что с ключом всё в порядке (команда выдаст либо данные сертификата, либо ошибку):

$ openssl x509 -in /etc/ssl/koobik.net.crt -text

Теперь нужно включить в конфиге nginx поддержку https (443 порт) и прописать путь к сертификату и ключу. Конфиги лежат в директории /etc/nginx/sites-available. Выберите конфиг нужного вам домена, либо отредактируйте файл default (если домен один и его конфиг лежит в нём).

nano /etc/nginx/sites-available/koobik.net

В секцию server надо добавить три строки — одну для поддержки https и две с указанием путей к файлам CRT и key.

server {
    listen 80;
    listen 443 ssl; # включаем поддержку https
    root /var/www/html/koobik;
    index index.php index.html index.htm;
    server_name koobik.net www.koobik.net;
    ssl_certificate /etc/ssl/koobik.net.crt; # путь к сертификату
    ssl_certificate_key /etc/ssl/koobik.key; # путь к ключу
    ...
}

Сохраняем и закрываем. Теперь протестируем корректность конфигурации nginx:

$ nginx -t

Если ошибок нет — перезапускаем nginx и через браузер проверяем работу по протоколу https:

$ service nginx reload

(Опционально) Можно сделать редирект всего трафика с 80 порта (http) на 443 (https). Для этого нужно в конфигурационном файле вынести http в отдельный блок и прописать код 301:

server {
    listen 80; # переносим из нижней секции
    server_name koobik.net www.koobik.net; # копируем из нижней секции
    return 301 https://koobik.net$request_uri; # дописываем код 301
}
server {
    listen 443 ssl; 
    root /var/www/html/koobik;
    index index.php index.html index.htm;
    server_name koobik.net www.koobik.net;
    ssl_certificate /etc/ssl/koobik.net.crt; 
    ssl_certificate_key /etc/ssl/koobik.key; 
    ...
}

Сохраняем, проверяем конфиг, перезапускаем nginx.

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *