最近工作需要在搭網(wǎng)站的https,先后使用了亞馬遜和Let’s Encrypt的ssl證書妆距。
亞馬遜的SSL證書申請
亞馬遜的服務(wù)器可以免費(fèi)使用1年,國內(nèi)訪問速度還可以
亞馬遜的ssl證書是有亞馬遜管理的不能下載店展,只能部署在ELB上面(反正我沒有找到怎么下載( ̄. ̄) )
1渐逃、打開aws頂部的服務(wù),搜索“Certificate Manager”
2烂完、請求證書=>請求公有證書
3试疙、添加域名
多個子域名,可以一起提交
4抠蚣、驗證方法(DNS驗證祝旷, 郵箱驗證),建議郵箱驗證
4.1嘶窄、DNS驗證需要去修改dns怀跛,添加cname,設(shè)置麻煩柄冲,驗證速度慢
驗證需要填寫CNAME 名_x.abc.com(_x加密串)吻谋,設(shè)置CNAME時,一般是填寫_x现横,后面的abc.com省略漓拾。
我填完半小時回來看一個可以,另一個不行修改了等了2個小時戒祠。申請到通過花了4個小時骇两。。姜盈。這個可能跟我填錯有關(guān)低千。驗證是aws定時發(fā)起的。
4.2贩据、郵箱驗證速度很快栋操,只要打開郵箱收郵件就可以了
發(fā)送郵件的郵箱如下圖所示,我這邊用admin@abc.com饱亮,原本已經(jīng)使用了QQ的企業(yè)郵箱矾芙,所以直接收郵件就可以了,按郵箱指示操作就可以了
如果沒有郵箱近上,可以嘗試使用QQ的企業(yè)郵箱剔宪,來接郵件(本人沒試過)
5、配置ssl證書
審核通過之后,你會發(fā)現(xiàn)這個沒有下載證書的位置葱绒,各種中文文檔也沒有如何配置使用的的說明感帅。
em....,我找了一下午地淀,最后在google發(fā)現(xiàn)是配置在ELB上的失球。英語不好,做不了程序員了帮毁。
6实苞、開始設(shè)置ELB:
進(jìn)入EC2管理界面,負(fù)載均衡器就是ELB烈疚,創(chuàng)建一個HTTP/HTTPS的均衡器
偵聽器黔牵,可以理解為nginx的listen 80,如果有https可以增加/修改成443爷肝。
可用區(qū)猾浦,我還沒具體用上,使用選擇最大的兩個灯抛。
這一步金赦,就可以選擇你申請的證書了。
然后下一步配置安全規(guī)則牧愁,記得安全規(guī)則需要開啟對應(yīng)的端口素邪,80或者443。
配置路由猪半,目標(biāo)組就是配置web服務(wù)器的被映射的端口兔朦。
請求先到ELB的80/443端口,再轉(zhuǎn)的web服務(wù)器的80或者其他端口磨确。
ELB有個好處沽甥,配置了ssl,映射到web服務(wù)器時就不用再配置https了乏奥,ELB已經(jīng)幫忙驗證ssl了摆舟。
這里還有可以配置web服務(wù)器的狀態(tài)監(jiān)測。
注冊目標(biāo)邓了,配置接收映射的服務(wù)器恨诱。如果“已注冊目標(biāo)”為空,訪問網(wǎng)站就會503骗炉。
最后審核過了照宝,就配置上去了。
不過這時還沒完成句葵,重新進(jìn)入負(fù)載均衡器的管理界面厕鹃,點(diǎn)擊剛才創(chuàng)建的均衡器兢仰。
復(fù)制下面的DNS,放瀏覽器打開網(wǎng)頁看看剂碴,可以看到正常網(wǎng)頁把将,表示可以了。
如果不行看看忆矛,看看均衡器和目標(biāo)群組配置是否正確
網(wǎng)頁可以正常打開察蹲,就到域名管理后臺是配置CNAME,就可以了洪碳。
我這邊遇到了無法解決問題递览。
godaddy禁止CNAME主域名,就是無法將abc.com CNAME 到 amazonaws.com瞳腌。
另一個域名運(yùn)營商是可以的。
如果使用亞馬遜的ssl證書镜雨,要注意主域名的問題嫂侍,二級域名就無所謂了。
PS:亞馬遜的的ELB只有15G的免費(fèi)流量荚坞;
因為無法解析主域名的問題挑宠,我重新去找ssl證書
Let’s Encrypt 證書申請使用
我使用來certbot申請證書
github: https://github.com/certbot/certbot
官網(wǎng): https://certbot.eff.org/
先安裝certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
申請證書
sudo ./certbot-auto certonly --standalone --email admin@abc.com -d abc.com -d www.abc.com
執(zhí)行上面指令,按提示操作颓影。
Certbot 會啟動一個臨時服務(wù)器來完成驗證(會占用80端口或443端口各淀,因此需要暫時關(guān)閉 Web 服務(wù)器),然后 Certbot 會把證書以文件的形式保存诡挂,包括完整的證書鏈文件和私鑰文件碎浇。
文件保存在 /etc/letsencrypt/live/ 下面的域名目錄下。
需要把要申請證書的域名先解析到這臺服務(wù)器上璃俗,才能申請奴璃。
修改nginx配置
server{
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/abc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/abc.com/privkey.pem;
server_name abc.com www.abc.com;
root /web/abc.com/;
}
證書自動續(xù)期
證書有效期是3個月,把下面命令加到crontab城豁,每2個月執(zhí)行一次苟穆。
certbot-auto renew //刷新指令
自動讀取nginx配置申請證書
certbot-auto --nginx 會自動讀取nginx的配置,按提示申請證書唱星。
下面命令會自動創(chuàng)建定時任務(wù)
certbot-auto renew --dry-run
不重啟申請證書
修改nginx配置雳旅,增加
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/nginx/html;
}
重啟nginx贱案,執(zhí)行 certbot-auto certonly --webroot -w /usr/share/nginx/html/ -d www.abc.com