How to Create Locally Trusted SSL Certificates

Хочется поделиться, очередным способом создания SSL сертификатов для нужд разработки. На этот раз мы воспользуемся замечательной утилитой: mkcert. Она работает под несколькими платформами и в нашем случае это Linux (Ubuntu 18.10).

Приступим к подготовке, перед установкой mkcert, установим certutil (если он ещё не установлен). Это консольная утилита, которая может создавать и модифицировать сертификаты, подробности всех возможностей можно найти в документации или на просторах интернета.

sudo apt install libnss3-tools -y

Приступим к установке mkcert. (список релизов доступен по адресу GitHub)

wget https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64
mv mkcert-v1.3.0-linux-amd64 mkcert
chmod +x mkcert
sudo cp mkcert /usr/local/bin/

Если всё прошло успешно, необходимо выполнить следующий шаг это

$ mkcert -install

Результатом будет весьма красивое сообщение с иконками или смайлами.

Created a new local CA at "/home/sv/.local/share/mkcert" 💥
The local CA is now installed in the system trust store! ⚡
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! 🦊

По данным из консоли, сразу видно, где был создан локальный корневой сертификат CA.

Теперь нужно выполнить простое действие:

sudo mkcert sibvrv.dev '*.sibvrv.dev' localhost 127.0.0.1 ::1

Получим следующий результат:

Created a new certificate valid for the following names 📜
 - "sibvrv.dev"
 - "*.sibvrv.dev"
 - "localhost"
 - "127.0.0.1"
 - "::1"

Reminder: X.509 wildcards only go one level deep, so this won't match a.b.sibvrv.dev ℹ️

The certificate is at "./sibvrv.dev+4.pem" and the key at "./sibvrv.dev+4-key.pem" ✅

Вот и всё, на выходе у нас сертификат и ключ, которые можно легко использовать для работы с https.