Skip to content

Latest commit

 

History

History
90 lines (61 loc) · 3.82 KB

ssl-certificate.md

File metadata and controls

90 lines (61 loc) · 3.82 KB

В данной инструкции объясняется, как создать SSL-сертификат для домена (доменов) с помощью Certbot.

Для создания самоподписанного (self-signed) сертификата, используйте этот скрипт или acert. Созданный сертификат нужно добавить в список доверенных сертификатов в хроме:

  1. Откройте раздел сертификатов в настройках: chrome://settings/certificates (Chrome settings > Security > Manage certificates).
  2. Откройте вкладку "Authorities".
  3. Нажмите "Import" и укажите созданный файл certificate authority.

Установка

Выжимка из документации (Ubuntu 20.04 + nginx):

$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Создание сертификата

$ certbot --nginx -d example.com

Сертификат для всех поддоменов (wildcard)

Чтобы не получать сертификаты отдельно для каждого поддомена, можно настроить сертификат для всех поддоменов. Certbot позволяет сделать это, если использовать получение сертификата через DNS.

Прежде всего необходимо установить плагин для вашего провайдера DNS. Например, для DigitalOcean это certbot-dns-digitalocean:

$ sudo snap install certbot-dns-digitalocean

Создайте файл certbot-digitalocean.ini с токеном API DigitalOcean и установите на него права с помощью следующей команды:

$ chmod 600

Затем создайте файл create-certificate.sh:

#!/bin/bash

certbot certonly \
  --dns-digitalocean \
  --dns-digitalocean-credentials ./certbot-digitalocean.ini \
  -d domain.com \
  -d *.domain.com

Осталось дать права на выполнение файла и запустить его:

$ chmod +x create-certificate.sh
$ ./create-certificate.sh

Ссылки

Обновление сертификата

Для автоматического обновления сертификата необходимо настроить запуск следующего скрипт каждый месяц с помощью Cron или Jobber:

#!/bin/bash

sudo certbot renew --nginx

В случае, если настроили получение сертификата через DNS:

#!/bin/bash

certbot renew \
  --dns-digitalocean \
  --dns-digitalocean-credentials ./certbot-digitalocean.ini

Не забудьте дать права на выполнение файла:

$ chmod +x renew-certificate.sh