1. Home
  2. Техническое
  3. Заказ сертификата Let’s Encrypt с помощью API DNS Zone

Заказ сертификата Let’s Encrypt с помощью API DNS Zone

Для того, чтобы заказать сертификат Let’s Encrypt, необходимо добавить ключ API Zone. Чтобы добавить ключ API, см. руководство по Zone API. Добавьте имя пользователя и ключ в файл ~/.bash_profile в SSH. Замените ZONEID_USERNAME на имя пользователя ZoneID, а ZONEID_APIKEY – на ключ API:

echo "export ZONE_Username=ZONEID_USERNAME" >> ~/.bash_profile
echo "export ZONE_Key=ZONEID_APIKEY" >> ~/.bash_profile
source ~/.bash_profile

Чтобы заказать сертификат Let’s Encrypt, мы используем клиент Acme.sh.

Для установки клиента Acme.sh запусти:

cd ~
curl https://get.acme.sh | sh
mkdir ~/bin
ln -s ~/.acme.sh/acme.sh ~/bin/acme.sh

Создайте каталог ~/certs для хранения сертификатов.

mkdir ~/certs

Создайте сертификат. В примере ниже замените example.com на свой домен. --reloadcmd – это команда для перезагрузки нужного приложения (Node.js или аналогичного), чтобы загрузить новый сертификат. Для того чтобы запись о сервере имен достигла сервера, может потребоваться до 5 минут:

acme.sh --issue -d example.com --dns dns_zone \
--cert-file      ~/certs/example.com.cert.pem \
--key-file       ~/certs/example.com.key.pem \
--fullchain-file ~/certs/example.com.fullchain.pem \
--reloadcmd      "pm2 restart nodejs-rakenduse-nimi"

Сертификат Let’s Encrypt действителен в течение трех месяцев, поэтому его необходимо регулярно обновлять. Для этого добавьте следующее еженедельное системное задание Crontab (замените example.com перед добавлением):

source ~/.bash_profile && acme.sh --issue -d example.com --cert-file ~/certs/example.com.cert.pem --key-file ~/certs/example.com.key.pem --fullchain-file ~/certs/example.com.fullchain.pem --dns dns_zone --reloadcmd "pm2 restart nodejs-rakenduse-nimi"

Это руководство адаптировано из руководства Ингмара Аасоя. Также спасибо tambetliiv за добавление поддержки Acme.sh Zone API.

 

Updated on 4. Apr 2024

Was this article helpful?

Related Articles