Для того, чтобы заказать сертификат 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.