about blog github

13 Apr 2023
使用certbot申请和更新letsencrypt证书

使用pip安装certbot和azure dns插件

pip install certbot certbot-dns-azure

创建azure配置文件

在home目录创建.azure.ini文件,替换成你的azure service principal:

dns_azure_sp_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5
dns_azure_sp_client_secret = E-xqXU83Y-jzTI6xe9fs2YC~mck3ZzUih9
dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7

dns_azure_environment = "AzurePublicCloud"

dns_azure_zone1 = example.com:/subscriptions/c135abce-d87d-48df-936c-15596c6968a5/resourceGroups/dns1

申请证书

certbot certonly \
        --authenticator dns-azure \
        --preferred-challenges dns \
        --noninteractive \
        --agree-tos \
        --email example@example.com \
        --domains example.com \
        --dns-azure-config ~/.azure.ini

更新证书

certbot renew \
        --post-hook 'systemctl restart nginx' \
        --max-log-backups 60"

可以将更新证书的命令创建成cronjob,每天运行一次。只有证书过期,certbot才会执行你指定的hook命令。例如:

# crontab -l
0 0 * * * /usr/local/bin/certbot renew --post-hook 'systemctl restart nginx' --max-log-backups 60


LEo at 00:12

about blog github