群輝搭配acme實(shí)現(xiàn)自簽證書申請(qǐng)
0 前言
之前使用docker申請(qǐng)的SSL證書又過期了,而且上次記錄的筆記遺失了,導(dǎo)致又要重新配置,這次參考了官方文檔關(guān)于群輝的適配說明,借助Synology DSM deployhook,可以實(shí)現(xiàn)自動(dòng)更新證書。我目前使用的是DNSPod解析域名(域名部分用 xxx.com 代替),同時(shí)通過ZeroSSL申請(qǐng)泛域名證書,請(qǐng)注意加粗的內(nèi)容。
1 配置步驟
1.1 申請(qǐng) DNSPod Token
https://console.dnspod.cn/account/token/token
獲得 ID 和 Token
1.2 下載 acme.sh
????開啟群輝ssh并登錄。
????$ sudo su?
????$ cd ~$ wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz?
????$ tar xvf master.tar.gz?
????$ cd acme.sh-master/?
????$ ./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmailcom"
????$ source ~/.profile
1.3?創(chuàng)建證書
? ? 需要注意國內(nèi)DNS驗(yàn)證通常無法通過,需要添加“--dnssleep 30”限制,跳過驗(yàn)證。一般設(shè)置為30秒足夠了,如果報(bào)錯(cuò)可以嘗試增加這個(gè)時(shí)長(zhǎng)。
????$ export DP_Id="XXXXXX"
????$ export DP_Key="XXXXXXXXXXXXXXXXXXXXXXXXXX"
????$ ./acme.sh --home . --issue? --dns dns_dp -d xxx.com?-d '*.xxx.com' --server zerossl --dnssleep 30 --force
1.4 部署證書
????新建一個(gè)群輝賬戶,注意分配到 "administrators" 用戶組中,其他所有的權(quán)限都可以取消。替換下方命令中的用戶名和密碼,以及登錄頁面的端口號(hào)。由于我開啟了雙因子驗(yàn)證(2FA),需要登錄后提取名稱為“did”的cookie,并填寫入SYNO_DID。注意登錄時(shí)需要選中“保持登錄”。
????$ export SYNO_Username='XXXXXX'
????$?export SYNO_Password='XXXXXXXXXXXX'
????$?export SYNO_Scheme="https"
????$?export SYNO_Port="xxxxx"
????$?export SYNO_Certificate=""
????$?export SYNO_DID='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
????$?export SYNO_Create=1
????$?./acme.sh --deploy --insecure --home . -d? 'xxx.com'? --deploy-hook synology_dsm
? ??
1.5 自動(dòng)更新證書
在群輝設(shè)置的“任務(wù)計(jì)劃”中,新增“用戶定義的腳本”,“用戶賬號(hào)”選擇為“root”,運(yùn)行時(shí)間可以設(shè)置為每周六執(zhí)行一次。任務(wù)設(shè)置中的“用戶命令”填寫如下:
# renew certificates?
/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
參考鏈接
1. https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide