使用acme申請https免費證書

前言


​ 上次寫了一篇https證書相關的筆記整理,我的以爲有些地方欠妥,此次介紹一個更方便更簡單更🐂一點的工具——acme.sh.上次使用的工具是certbot.nginx

二者對比,acme.sh有以下優勢:git

  • acme.sh會自動設置好定時任務.自動更新證書.certbot的更新須要手動設置cron.
  • acme.sh可使用域名解析商提供的 api 自動添加 txt 記錄完成驗證.簡單、高效.
  • 安裝簡單,沒有環境依賴.卸載一樣簡單.

安裝


# 建議使用root安裝,
curl  https://get.acme.sh | sh 
複製代碼

該命令會把acme安裝在~/.acme.sh路徑下,併爲你建立一個檢查更新證書的定時任務.github

由於該工具備個參數reloadcmd能夠預設命令,可能會reload nginx服務器等.建議使用root安裝.shell

#查看定時任務
crontab -l
23 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
# --home --cron參數解釋可用~/.acme.sh/acme.sh -h查看,解釋以下
  --home                   Specifies the home dir for acme.sh.指定acme的路徑
  --cron                   Run cron job to renew all the certs.定時檢查更新證書
複製代碼

簽發證書(Issue a cert)


簽發證書前,須要驗證域名的全部權,acme支持多種方式驗證,建議使用http和dns驗證.api

個人我的域名解析使用的是cloudflare的free套餐,且acme文檔寫明支持cloudflare.因此選擇dns驗證.bash

依照acme文檔-how-to-use-dns-api,服務器

1.登陸cloudflare官網獲取API key.curl

#cloudflare-->我的配置--->API key - Global API Key - view API key
# 拿到API key後,設置以下環境變量.
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"
複製代碼

接下來就能夠愉快的申請證書了.工具

申請證書命令以下:post

acme.sh --issue -d glc.im -d *.glc.im --dns dns_cf \ 
--key-file "/etc/nginx/ssl/glc.im/xxxx.key" \ 
--fullchain-file "/etc/nginx/ssl/fullchain.cer" \ 
--reloadcmd "service nginx reload"
複製代碼
  • glc.im /*.glc.im換成本身的域名
  • dns_cf是對應的cloudflare,其餘域名解析服務商請參照https://github.com/Neilpang/acme.sh/wiki/dnsapi
  • key-file/fullchain-fil 簽發證書後,acme會幫你把證書複製到該路徑下
  • reloadcmd 由於是root安裝的acme 此命令能夠幫助我重載nginx

更多內容


相關文章
相關標籤/搜索