Mkcert — https для локального сайта

Чтобы иметь возможность работать с локальной копией веб приложения через HTTPS необходим доверенный SSL сертификат. Сделать такой можно, например, через openssl: выпустить сертификат, заверить локальным корневым и внести в хранилище доверенных сертификатов. Однако это не так быстро в реализации, как хотелось бы, не так безопасно и несет свои неудобства в браузерах. Лучше для таких целей использовать mkcert.

Для начала необходимо установить mkcert. На Ubuntu это можно сделать через brew (но тогда придется ставить и его) или выбрать один из альтернативных способов. Например, через бинарный файл:

apt-get install wget libnss3-tools
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
mkcert --version

При успешной операции мы увидим номер версии.

Теперь добавим mkcert в список локальных корневых центров сертификации:

mkcert -install

После чего мы можем легко создавать доверенные сертификаты:

mkcert localhost # Для localhost
mkcert somedomain.local # Для домена somedomain.local

Эти команды создадут в текущей папке файлы *.pem.

Теперь осталось перенести файлы и указать их в настройках веб сервера. Для nginx добавить строки:

server {
    server_name somedomain.local;
    listen 80;

    # Добавляем прослушивание порта 443 для ssl
    listen 443 ssl; 

    # Добавляем использование файлов с сертификатами
    ssl_certificate /etc/nginx/certs/somedomain.local.pem;
    ssl_certificate_key /etc/nginx/certs/somedomain.local-key.pem;
...
...
}

Вот так легко. Ни в какое сравнение с настройкой того же через openssl.

Полезные ссылки

Leave a Reply

Ваш адрес email не будет опубликован.