Поиск по сайту:

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


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить Mkcert
  4. Создать локальный ЦС
  5. Создание сертификата для локального веб-сайта
  6. Настройте Nginx для использования сгенерированного сертификата
  7. Подтвердите SSL для своего домена
  8. Заключение

Mkcert — это бесплатный, простой и очень полезный инструмент, позволяющий создать локально доверенный сертификат, не покупая его у настоящего ЦС. Разработчики обычно работают в локальной системе и всегда невозможно использовать доверенный сертификат от CA на локальном хосте. Mkcert позволяет без проблем управлять собственными сертификатами.

В этом посте мы покажем вам, как создать доверенный SSL-сертификат для локальной разработки с помощью Mkcert в Ubuntu 20.04.

Предпосылки

  • Система под управлением Ubuntu 20.04 Desktop.
  • На сервере настроен пароль root.

Начиная

Сначала обновите системные пакеты до обновленной версии, выполнив следующую команду:

apt-get update -y

Как только все пакеты будут обновлены, вы можете перейти к следующему шагу.

Установить Мксерт

Перед установкой утилиты Mkcert вам необходимо установить на сервер необходимые пакеты. Вы можете установить его с помощью следующей команды:

apt-get install wget libnss3-tools

После установки всех пакетов загрузите последнюю версию Mkcert с Github.

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

После загрузки Mkcert переместите загруженный бинарник в системный путь:

mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert

Затем установите разрешение на выполнение для mkcert:

chmod +x /usr/bin/mkcert

Затем проверьте версию Mkcert с помощью следующей команды:

mkcert --version

Вы должны увидеть следующий вывод:

v1.4.3

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

Теперь выполните следующую команду, чтобы сгенерировать локальный сертификат ЦС:

mkcert -install

Вы должны увидеть следующий вывод:

Created a new local CA ????
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)! ????

Вы можете проверить путь к сертификату ЦС, используя следующую команду:

mkcert -CAROOT

Вы должны увидеть следующий вывод:

/root/.local/share/mkcert

Создайте сертификат для локального веб-сайта

Затем вы можете сгенерировать сертификат и файл ключа для локального веб-сайта, используя следующую команду:

mkcert app.example.com localhost 127.0.0.1 ::1

Вы должны увидеть следующий вывод:

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

The certificate is at "./app.example.com+3.pem" and the key at "./app.example.com+3-key.pem" ?

It will expire on 1 November 2023 ????

Настройте Nginx для использования сгенерированного сертификата

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

Сначала скопируйте сгенерированные файлы сертификатов в каталог /etc/ssl/:

cp app.example.com+3* /etc/ssl/

Затем установите правильное право собственности на корневой веб-каталог Nginx:

chown -R www-data:www-data /var/www/html/

Затем создайте файл конфигурации виртуального хоста Nginx с помощью следующей команды:

nano /etc/nginx/conf.d/app.conf

Добавьте следующие строки:

server {
   listen 80;
   server_name app.example.com;
   root /var/www/html;
}

server {
   listen *:443 ssl;
   root /var/www/html;
   server_name app.example.com;
   ssl_certificate /etc/ssl/app.example.com+3.pem; 
   ssl_certificate_key /etc/ssl/app.example.com+3-key.pem;
}

Сохраните и закройте файл, когда закончите, затем проверьте Nginx на наличие синтаксической ошибки:

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

Затем отредактируйте файл /etc/hosts и привяжите ваш app.example.com к IP-адресу вашей системы:

nano /etc/hosts

Добавьте следующие строки:

your-server-ip app.example.com

Подтвердите SSL для вашего домена

Теперь откройте веб-браузер и введите URL-адрес https://app.example.com. Вы должны увидеть, что ваш домен защищен Mkcert.

Теперь нажмите на значок блокировки. Вы должны увидеть информацию о вашем сертификате на следующей странице:

Заключение

Поздравляем! вы успешно установили Mkcert и создали доверенный сертификат ЦС для своей локальной разработки. Я бы рекомендовал использовать Mkcert только для среды разработки. Не рекомендуется для производственной среды.