安裝
- 安裝acme.sh
curl https://get.acme.sh | sh
安裝完之後會在 root 目錄下產生一個 .acme.sh 資料夾,也可以從官方git hub 把東西拉下來.
- set email
cp /root/.acme.sh/acme.sh /sbin/
acme.sh --register-account -m uremail@gmail.com
設定cloudflare token 基本上acme支援很多家api申請,一般來說就用既有的就好.以cloudflare來說,需要產出的token是需要有能編輯dns紀錄的.
- 先到該連結
- 選
建立token
- 選
編輯區域dns
,客戶端 IP 位址篩選
這邊可以限定可操作ip,區域資源
可以選指定域名,注意權限需選DNS
並授予編輯
,token
效期依據公司規範 - 全部設定玩按下一步,然後複製token , ex
R4O6rqd3hvGzXXXXXXXXXX
回到主機使用一下指令產出憑證,如果你是用global key要用
CF_Key
用token則用CF_Token
,建議用token限縮權限!
export CF_Token="R4O6rqd3hvGzXXXXXXXXXX"
acme.sh --issue --dns dns_cf -d "*.948787.store" -d "948787.store"
如果你沒有用argument指令指定憑證產生的位置,他預設會跟著你acme.sh的位置產在同一層資料夾.這邊提供指定位置的指令!
/root/.acme.sh/acme.sh --issue --dns dns_cf -d "*.YourDomainName.com" -d "YourDomainName.com" --log \
--cert-file /etc/nginx/ssl/cert.crt \ # 複製憑證到指定的目錄下面
--key-file /etc/nginx/ssl/key.key \ # 複製憑證到指定的目錄下面
--fullchain-file /etc/nginx/ssl/fullchain.crt \ # 複製憑證到指定的目錄下面
--ca-file /etc/nginx/ssl/ca.crt \ # 複製憑證到指定的目錄下面
--reloadcmd "systemctl reload nginx" # 如果是用 Apache 請自己修改
- 以我為例,就會在
/root/.acme.sh
拿到'*.948787.store_ecc'這個folder,folder結構如下
*.948787.store_ecc
├── *.948787.store.cer
├── *.948787.store.conf
├── *.948787.store.csr
├── *.948787.store.csr.conf
├── *.948787.store.key
├── ca.cer
└── fullchain.cer
*.948787.store.cer
是放我這個域名的公鑰*.948787.store.conf
放acme.sh之後來renew的conf*.948787.store.csr
加密文件,用以向CA申請憑證的申請單*.948787.store.key
你的憑證的private key.ca.cer
打開來裡面可能會有一個以上的憑證,分別是你的中繼憑證以及根憑證或者只有根憑證,這要依據簽署單位!fullchain.cer
打開來裡面會至少有兩個以上憑證,分別是你憑證以及根憑證,或者也會有中繼憑證憑證,這要依據簽署單位!簡單來說,所有簽發過程都會放在這!
結論
透過acme.sh可以節省憑證申請的費用跟工時,近一步使用案例及指令可以參考以下資源!