前提:nginx已啟動(dòng)
主機(jī)環(huán)境:ubuntu 16.04
使用的ssl證書為Lets's Encrypt Authority x3簽發(fā)的谐岁,是免費(fèi)使用的绞吁,他們的工具現(xiàn)在叫certbot蜻牢,使用方法很簡單萌朱,按這一套流程下來缀磕,https就就可以正常使用了落君,非常方便。
主要記錄一下幾個(gè)要點(diǎn)
多個(gè)子域需要各自生成證書茧吊,比如example.com贞岭、a.example.com、b.example.com就需要三個(gè)證書搓侄,終端用這一條命令搞定:
sudo certbot --expand -d example.com,a.example.com,b.example.com
接下來會(huì)讓你選這個(gè):
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
假如你有很多子域瞄桨,或設(shè)置了泛解析,并且沒有分別為每個(gè)子域分配證書
- 如果選擇了1讶踪,nginx不會(huì)對非https請求作重定向芯侥。添加了證書的子域,如果用戶輸入http進(jìn)入還是按照http做請求乳讥,未添加證書的子域也還是按照http來鏈接(80端口)柱查,對用戶的體驗(yàn)沒有影響。
- 如果選擇了2云石,會(huì)在nginx配置文件中加入一個(gè)http => hhtps的強(qiáng)制重定向操作唉工。那么在訪問沒有證書的子域時(shí),會(huì)出現(xiàn)這個(gè)界面(你的連接不安全汹忠,需要在高級(jí)中點(diǎn)繼續(xù)訪問)淋硝,不過這個(gè)子域在連接時(shí)仍然使用的443端口雹熬,這在你將某一沒有證書的子域作為restfulAPI服務(wù)時(shí)對一些強(qiáng)制需要https的網(wǎng)站很有用,比如小程序谣膳,比如蘋果竿报。
其實(shí)2比1在nginx中就多了這么幾行,注釋掉和1的作用相同
在nginx這里参歹,最好將每一子域分開寫,我寫的*.example.com
隆判,在更新證書時(shí)提示沒有找到www.
這個(gè)子域犬庇,但是感覺這樣不合理,應(yīng)該是可以批量配置的侨嘀。