使用letsEncrypt替換docker容器內的nginx https憑證

URL Link //n.sfs.tw/16227

2023-09-07 16:35:28 By jung

由於https憑證到期,但新憑證尚未請購

只好先替換為免費的letsEncrypt憑證

但nginx放在docker容器中,據某大神說,這樣要取得letsEncrypt驗證很麻煩

由於時間緊迫,只好之後再來研究

先變通一下,在oracle linux 9上裝好nginx啟動後讓letsEncrypt驗證域名

dnf install nginx

重點是certbot要用nginx專用的

dnf install certbot python-certbot-nginx

啟動systemctl restart nginx

開始驗證,只取得憑證檔案

certbot certonly --nginx -d your.domain.name

成功的話,就會產生憑證檔案放在指定目錄

Successfully received certificate.

Certificate is saved at: /etc/letsencrypt/live/matsu.sso.edu.tw/fullchain.pem

Key is saved at:         /etc/letsencrypt/live/matsu.sso.edu.tw/privkey.pem

This certificate expires on 2023-12-06.

然後本機的nginx就可以停掉了

打開憑證來看,其實fullchain.pem就是server, uca, root三張放在一起

所以把nginx用的cer檔清空,再把fullchain.pem內容放進去

同理可證 privkey 就是 private.key

但內容比較短,不知道原因,可以用就對了

cat /dev/null > nginx.cer && cat fullchain.pem >> nginx.cer

重新啟動容器

docker restart nginx