Mkcert — создание сертификатов SSL для локальной разработки в Linux

В этой статье я расскажу, как установить mkcert, инструмент zero-config в нашей последней системе Ubuntu.

Mkcert — это простой инструмент, который можно использовать при создании сертификатов с локальным доверием.

Он не требует какой-либо конфигурации.

Всегда опасно или невозможно использовать сертификаты от реальных центров сертификации для localhost или 127.0.0.1.

Даже использование самоподписанных сертификатов также не рекомендуется, так как они вызывают ошибки доверия.

Mkcert предоставляет нам лучшее решение для этого, управляя собственным CA.

Это автоматически создаст и установит локальный ЦС в корневом хранилище системы и создаст сертификаты с локальным доверием.

Давайте посмотрим шаги для установки mkcert.

Предварительные условия

  • Хорошо сконфигурированный сервер с привилегиями Go 1.10+ и root.
  • Инструмент базы данных сертификатов (Certutil)

Установка Golang

Go — это системный язык программирования общего назначения, с помощью которого мы можем создавать самые разнообразные приложения.

Язык и его инструментальные средства доступны в нашем репозитории по умолчанию.

Мы можем установить язык Go в Ubuntu 18.04, просто выполнив эту команду.

#apt install golang
# go version
go version go1.10.1 linux/amd64

Теперь мы можем создать файл «/etc/profile.d/goenv.sh» для настройки переменной окружения Go по всему серверу, как показано ниже:

# cat /etc/profile.d/goenv.sh
export GOROOT=/usr/lib/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

# source /etc/profile.d/goenv.sh

Установка Certutil

Инструмент базы данных сертификатов или Certutil — это простая утилита командной строки, которая может создавать / изменять сертификат и базы данных ключей.

Он может быть специально использован для отображения, генерации, изменения или удаления сертификатов.

Его можно даже использовать для создания или изменения пароля, создания новых пар public / private key.

Кроме того, он отображает содержимое базы данных ключей или удаляет пары ключей в базе данных ключей.

На нашем сервере Ubuntu мы можем установить его, выполнив следующую команду:

# apt install libnss3-tools

Установка Mkcert

В зависимости от нашей платформы и требований ОС нам нужно загрузить исходный файл для инструмента Mkcert.

#wget https://github.com/FiloSottile/mkcert/archive/v1.0.0.tar.gz
# cd mkcert-1.0.0/
#make

Теперь мы можем скопировать этот двоичный файл mkcert из папки установки в папку /usr/bin/, чтобы использовать ее на сервере.

#cd mkcert-1.0.0/bin/
#cp mkcert /usr/bin/

Наконец, мы можем создать наш локальный ЦС для создания наших сертификатов с помощью этой команды:

# mkcert -install
Created a new local CA at "/root/.local/share/mkcert" 💥
The local CA is now installed in the system trust store! ⚡

Наш корневой root CA будет создан и сохранен по пути /root/.local/share/mkcert.

Обычно сертификат ЦС и его ключ хранятся в папке данных приложения в домашнем доме пользователя.

Местоположение можно также получить с помощью команды mkcert -CAROOT.

# mkcert -CAROOT
/root/.local/share/mkcert

Теперь мы можем использовать этот инструмент для создания локально доверенных сертификатов разработки по мере необходимости:

# mkcert example.com '*.example.org' myapp.dev localhost 127.0.0.1 ::1
Using the local CA at "/root/.local/share/mkcert" ✨

Created a new certificate valid for the following names 📜
- "example.com"
- "*.example.org"
- "myapp.dev"
- "localhost"
- "127.0.0.1"
- "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

Как сообщается в этом выполнении команды, сгенерированные локально доверенные сертификаты сохраняются в пути от того места, где мы запускаем эту команду.

В моем случае мои сертификаты создаются в /root.

Я просто переместил эти файлы в папку /etc/ssl, как показано ниже:

#cp /root/example.com+5.pem /etc/ssl/certs/
#cp /root/example.com+5-key.pem /etc/ssl/private/

Включение сертификатов на Apache2

Наш следующий шаг — установить наш веб-сервер и включить SSL для использования этих сертификатов, проверенных локально.

Я установил Apache2 и включил SSL, чтобы использовать это.

#apt install apache2
#systemctl enable apache2
#systemctl start apache2

Во-вторых, отредактируйте файл SSL, расположенный по адресу /etc/apache2/sites-available/default-ssl.conf, с нашим локально сгенерированным сертификатом SSL и ключевыми данными, как показано ниже:

SSLCertificateFile /etc/ssl/certs/example.com+5.pem
SSLCertificateKeyFile /etc/ssl/private/example.com+5-key.pem

Теперь вы можете включить модуль SSL и перезапустить службу Apache2, чтобы сделать эти изменения эффективными.

# a2enmod ssl
# a2ensite default-ssl.conf
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
#systemctl reload apache2
#systemctl restart apache2

Наконец, мы можем попробовать просмотреть https://localhost, чтобы подтвердить, что он работает.

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

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

5e7fa976b0640d40