在【Let's Encrypt正式支持通配符(泛解析)證書的闢謠】一文裡明月已經強調了目前網上很多所謂的申請Let's Encrypt通配符證書教程裡存在的不嚴謹,下面明月就給大家說一下如何正常申請到支持通配符的Let's Encrypt證書。
本文將以 acme.sh 腳本為例,因為 acme.sh 已經內測支持 Let's Encrypt 通配符證書的申請,但需要更新你當前使用的 acme.sh 腳本到最新版本,具體命令如下:
acme.sh --upgrade
下載更新完成後,就可以申請Let's Encrypt通配符證書了,如果以前已經有Let's Encrypt證書了,只是需要申請替換原有證書,記得加上 --force 參數即可,具體命令如下:
acme.sh --issue --dns dns_cx -d mydomain.com -d *.mydomain.com --forceacme.sh --installcert -d mydomain.com -d *.mydomain.com \--key-file /home/wwwroot/www.mydomain.com/ssl/mydomain.com.key \--fullchain-file /home/wwwroot/www.mydomain.com/ssl/mydomain.com.cer \--reloadcmd "service nginx reload"
當然,如果你想重新完整申請Let's Encrypt通配符證書也是可以的,就是需要刪除原有的證書,首先先列出當前通過 acme.sh 腳本管理的證書:
acme.sh --list
然後根據列出的當前證書的Main_Domain
來刪除對應的證書,如下命令:
acme.sh remove Main_Domain
如果是ECC證書可以加上-ecc參數來刪除:
acme.sh remove Main_Domain -ecc
這樣以後就可以參考上面的申請辦法(去掉參數--force即可),比如:
acme.sh --issue --dns dns_cx -d mydomain.com -d *.mydomain.com
需要注意的是,目前Let's Encrypt通配符證書的申請,只能使用DNS驗證模式才可以,未來官方在正式支持以後可能會更多的方式來支持的,所以記得要提前導入好DNS的API哦!
同理,ECC加密的證書申請通配符可以用下面的命令:
acme.sh --issue --dns dns_cx -d imydl.tech -d *.imydl.tech -k ec-256 --forceacme.sh --installcert -d imydl.tech -d www.imydl.tech --ecc \--key-file /home/wwwroot/www.imydl.tech/ssl/imydl.tech.ecdsa.key \--fullchain-file /home/wwwroot/www.imydl.tech/ssl/imydl.tech.ecdsa.cer \--reloadcmd "service nginx reload"
其他同上參考即可。
至此你已經申請到支持通配符的Let's Encrypt證書了,通過acme.sh --list在SAN_Domains一欄裡就可以看到*.mydomain.com就說明已經成功了。
最後再次鄙視一下那些一點兒都不嚴謹的博文,需要說明白的都是模稜兩可一筆帶過,對很多小白來說真的是“害人不淺”,強烈鄙視一下!
閱讀更多 明月登樓 的文章