Skip to main content

One post tagged with "ssl"

View All Tags

· 4 min read
zaxro

安裝

  • 安裝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
  1. *.948787.store.cer是放我這個域名的公鑰
  2. *.948787.store.conf放acme.sh之後來renew的conf
  3. *.948787.store.csr加密文件,用以向CA申請憑證的申請單
  4. *.948787.store.key你的憑證的private key.
  5. ca.cer打開來裡面可能會有一個以上的憑證,分別是你的中繼憑證以及根憑證或者只有根憑證,這要依據簽署單位!
  6. fullchain.cer打開來裡面會至少有兩個以上憑證,分別是你憑證以及根憑證,或者也會有中繼憑證憑證,這要依據簽署單位!簡單來說,所有簽發過程都會放在這!

結論

透過acme.sh可以節省憑證申請的費用跟工時,近一步使用案例及指令可以參考以下資源!