linux. Самоподписанный SSL сертификат для работы https на локальной машине c NGINX

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
linux. Самоподписанный SSL сертификат для работы HTTPS на локальной машине c NGINX.


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

В данной статье я буду описывать весь процесс с использованием Linux Ubuntu 22.04.

  1. В первую очередь создайте дирректорию в которой будут храниться ваши сертификаты и перейдите в нее:
    sudo mkdir /etc/nginx/certs && cd /etc/nginx/certs

  2. Сгенерируйте приватный ключ шифрования:
    В статье я приводу пример с созданием сертификата с именем pacificsky, но вы можете указать любое другое наименование. Но тогда не забудьте поменять и пути в конфигурационных nginx файлах.

    sudo openssl genrsa -out "pacificsky.key" 2048

  3. Теперь необходимо сгенерировать публичный ключ. Для этого необходимо использовать приватный секретный ключ.
    При генерации вам будет необходимо ответить на разные вопросы о вашем сервисе. Но так как вы делаете это для лакольной машины, вы можете остать эти поля пустыми.
    sudo openssl req -new -key "pacificsky.key" -out "pacificsky.csr"


  4. Далее подписываем и генерируем сертификат.
    sudo openssl x509 -req -days 365 -in "pacificsky.csr" -signkey "pacificsky.key" -out "pacificsky.crt"


    На этом генерация и подпись сертификатов закончена!

  5. Переходим к настройке Nginx для запуска работы сайта через протокол HTTPS по 443 порту.
    Откройте Nginx конфигурационный файл с вашим проектом и добавьте в него слудующие строки для работы вашего сервера на 80 и 443 порту.
    listen 80:
    listen 443 ssl;

    Добавьте путь к вашему сертификату и ключу:
    ssl_certificate     /etc/nginx/certs/pacificsky.crt;
    ssl_certificate_key /etc/nginx/certs/pacificsky.key;

    Для примера показываю код моего конфигурационного Nginx файла для проекта pacificsky.ru.lan, который находится в дирректории "/etc/nginx/sites-available/pacificsky":



  6. На этом конфигурация конфигурационного Nginx файла завершена. Необходимо перезагрузить Nginx сервис.
    sudo service nginx restart

  7. Теперь запустите браузер, введите url вашего ловального проета с указанием https протокола.
    Приведу пример на своем проекте.
    Открываю страницу со своим проектом в браузере при обращении к домену:
    https://pacificsky.ru.lan/

    Скорее всего браузер признает ваш самоподписный сертификат недостоверным. Это нормально для самоподписного сертификата.
    Браузер может предложить вам открыть сайт с самоподписным сертификатом на свой страх и риск и вы должны согласиться.
    Или есть еще один вариант решения проблемы для хромоподобных браузеров (Таких как chrome, opera, edge и тд), на странице с проектом нужно ввести с клавиатуры слово thisisunsafe и сайт должен открыться.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.