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

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

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

apt-get install wget libnss3-tools
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert
chmod +x /usr/bin/mkcert
mkcert --version

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

Теперь добавим 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 не будет опубликован.