前言
在家里搭建了幾個(gè)服務(wù),需要在外網(wǎng)訪問,使用lets encrypt申請(qǐng)的證書,之前是每個(gè)域名單獨(dú)申請(qǐng)的,這樣比較麻煩,更新的時(shí)候也要每個(gè)都更新,于是重新申請(qǐng)了通配符證書,一個(gè)就搞定了。
certbot的安裝比較繁瑣,還好官方提供了docker鏡像,申請(qǐng)和更新都能使用docker搞定。
lets encrypt普通的申請(qǐng)方式需要能夠從外網(wǎng)訪問到80端口,由于我是在家里的環(huán)境使用,寬帶公司一般默認(rèn)是封了80和443端口,所以需要使用DNS驗(yàn)證的方式進(jìn)行申請(qǐng)。
證書申請(qǐng)
$ docker pull certbot/certbot
$ docker run -it --name certbot --network host -v /etc/letsencrypt:/etc/letsencrypt certbot/certbot certonly --manual --preferred-challenges=dns
!注意,如果不是使用的dns申請(qǐng)的,則需要使用到主機(jī)的80端口,由于使用端口映射的方式會(huì)一直占用端口,所以可以使用主機(jī)網(wǎng)絡(luò),增加--network host參數(shù)
然后輸入你的域名,注意*不能忽略

image.png
然后根據(jù)輸出添加一條類型為TXT的域名解析記錄,添加完成后,回到終端回車完成申請(qǐng)

image.png
證書更新
$ docker run -it --name certbot -v /etc/letsencrypt:/etc/letsencrypt certbot/certbot renew