1. 透過git把acme.sh下載下來
git clone https://github.com/acmesh-official/acme.sh.git
2. 進入到acme.sh資料夾後,需要進行 1) 把認證Server切換到Let's encrypt(預設是會跑到ZeroSSL,這個是要錢的) 2)進行server認證。這邊使用cloudflare服務作為範例:
#切換Server到lets encrypt
./acme.sh --set-default-ca --server letsencrypt
#跟cloudflare進行交握
./acme.sh --issue -d *.markliou.tw --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
後面會有很多字,原本預設應該是要透過Cloudflare API進行交握,過程大概就是acme會透過api把一段文字上傳到DNS紀錄當中,然後透過DNS查詢看這段文字能不能被讀取到。如果能被讀取到就表示這個網域確實是你的。
這部分我們沒有透過cloudflare api進行就必須要自己手動進行。製作方式也很簡單,吐出的文字當中大概會出現:
[Fri Sep 13 08:25:07 AM UTC 2024] Adding TXT value: 9E**************************************3TM for domain: _acme-challenge.markliou.tw
上面那段有一堆馬賽克的文字就要自己手動貼到cloudflare的DNS紀錄,記得把類別改為txt。
重新進行一次,但是要把--issue改為--renew。這邊要記得改,不然一直讓lets encrypt發送,很快就會超過它們的限制數量
./acme.sh --renew -d *.markliou.tw --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
後面就會告知申請完畢的certification在哪個folder
最後一步是要把內容轉為認證加密檔,有用的通常就是cert.pem跟key.pem兩個檔案
acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 force-reload"
沒有留言:
張貼留言