---
title: "Заказ сертификата Let’s Encrypt с помощью API DNS Zone"
canonical_url: "https://www.zone.lv/help/ru/kb/zakaz-sertifikata-lets-encrypt-s-pomoshhju-api-dns-zone/"
post_type: "ht_kb"
published: "2024-04-04T13:51:20+00:00"
modified: "2024-04-04T13:51:20+00:00"
language: "ru"
author: "silver"
taxonomies:
  ht_kb_category:
    - name: "API"
      url: "https://www.zone.lv/help/ru/kb-categories/api-ru/"
    - name: "Техническое"
      url: "https://www.zone.lv/help/ru/kb-categories/tehnicheskoje/"
  ht_kb_tag:
    - name: "API"
      url: "https://www.zone.lv/help/ru/kb-tags/api-ru/"
    - name: "nodejs"
      url: "https://www.zone.lv/help/ru/kb-tags/nodejs-ru/"
---

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

Для того, чтобы заказать сертификат Let’s Encrypt, необходимо добавить ключ API Zone. Чтобы добавить ключ API, см. руководство по [Zone API](https://www.zone.lv/help/ru/kb/zone-api-2/). Добавьте имя пользователя и ключ в файл `<span class="pl-k">~</span>/.bash_profile` в [SSH](https://www.zone.lv/help/ru/kb/podkluchenije-cherez-protokol-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](https://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"
```

Это руководство адаптировано из [руководства Ингмара Аасоя](https://github.com/zone-eu/zone-docs/blob/master/articles/est/LetsEncrypt-Acme.sh.md). Также спасибо [tambetliiv](https://github.com/tambetliiv) за добавление поддержки Acme.sh Zone API.
