Здравствуйте, ребята, добро пожаловать в это руководство по созданию сертификатов 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