Как создавать локально доверенные SSL-сертификаты с помощью mkcert в Ubuntu 18.04 |

Как создавать локально доверенные SSL-сертификаты с помощью mkcert в Ubuntu 18.04

Мануал

Здравствуйте, ребята, добро пожаловать в это руководство по созданию сертификатов SSL для разработки с локальным доверием в Ubuntu 18.04 с помощью утилиты mkcert.

mkcert – это простой инструмент с нулевой конфигурацией, который используется для создания локально доверенных сертификатов разработки.

Он автоматически создает и устанавливает локальный центр сертификации в корневом хранилище системы и генерирует локально доверенные сертификаты.

Использование сертификатов от реальных центров сертификации (ЦС) для разработки может быть опасным или невозможным (для хостов, таких как localhost или 127.0.0.1), но самоподписанные сертификаты вызывают ошибки доверия.

Управление собственным ЦС – это лучшее решение, но обычно оно включает в себя непонятные команды, специальные знания и ручные действия, но не более того при наличии утилиты mkcert.

Без  теории, давайте посмотрим, как mkcert может помочь вам в этом.

Установка mkcert

Установите Certutil

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

# apt install libnss3-tools -y

Установите mkcert

После завершения установки certutil загрузите двоичный файл mkcert с Github и установите его, как показано ниже.

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

Создать локальный CA

Теперь, когда утилита mkcert установлена, выполните команду ниже, чтобы сгенерировать локальный CA.

$ mkcert -install
Created a new local CA at "/home/amos/.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 хранится в /home/amos/.local/share/mkcert.

Вы также можете найти путь к корневому центру сертификации, выполнив команду ниже.

$ mkcert -CAROOT
/home/amos/.local/share/mkcert

Генерация локальных сертификатов SSL

Теперь, когда у вас есть локальный центр сертификации, выполните команду ниже, чтобы сгенерировать локальные сертификаты SSL.

$ sudo mkcert example.com '*.example.com' localhost 127.0.0.1 ::1
Using the local CA at "/home/amos/.local/share/mkcert" ✨

Created a new certificate valid for the following names ?
 - "example.com"
 - "*.example.com"
 - "localhost"
 - "127.0.0.1"
 - "::1"

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

Включить сертификаты для веб-сервера Apache

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

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

Смотрите пример ниже.

# vim /etc/apache2/sites-available/default-ssl.conf
...
SSLCertificateFile /home/amos/example.com+4.pem
SSLCertificateKeyFile /home/amos/example.com+4-key.pem
...

Разрешите Apache использовать SSL, загрузив модули ssl;

# a2enmod ssl
# a2ensite default-ssl.conf

Перезагрузите и перезапустите Apache, чтобы активировать новую конфигурацию

# systemctl reload apache2
# systemctl restart apache

Перейдите в браузер и попробуйте получить доступ к вашему домену.

Включить сертификаты для веб-сервера Nginx

Создайте свою конфигурацию веб-страницы, как показано ниже.

# vim /etc/nginx/sites-available/example.com
server {
listen 80;
listen 443 ssl;

ssl on;
ssl_certificate /home/amos/example.com+4.pem; 
ssl_certificate_key /home/amos/example.com+4-key.pem;

server_name example.com;
location / {
root /var/www/html/example;
index index.html;
}
}

Убедитесь, что в конфигурации нет ошибок.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапустите Nginx

# systemctl restart nginx

Перейдите в браузер и протестируйте свой ssl для своего домена.

Ну, кажется, все в порядке.

Вы успешно создали свои локально доверенные сертификаты SSL

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий