研究了一下HTTPS的機制,看了一篇好文章,打算升級一下公司服務。html
要使用HTTPS,關鍵須要有證書,市面上的證書廣泛須要上萬的年費。但也有CA提供免費的證書,如:nginx
Let’s Encrypt(https://letsencrypt.org/), 它提供了一個叫Certbot的工具(https://certbot.eff.org/)來安裝證書。web
個人環境是CentOS7,使用了Nginx,安裝證書的步驟參考(http://www.javashuo.com/article/p-hnxfilsj-cn.html)segmentfault
1) 安裝Certbot服務器
使用yum安裝Certbot以後,運行老是異常,因此使用了certbot-auto來替代certbot指令,certbot-auto的安裝:工具
https://certbot.eff.org/docs/install.html#alternate-installation-methods.net
2)配置Nginxcode
修改/etc/nginx/nginx.conf,在server中添加:server
location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; root /usr/share/nginx/html; } location = /.well-known/acme-challenge/ { return 404; }
reload nginx:htm
sudo service nginx reload
3)安裝證書:
/usr/local/bin/certbot-auto certonly --webroot -w /usr/share/nginx/html/ -d esl-hz.zkong.com
根據提示輸入相應的選項,安裝成功後,會有提示:
能夠看到證書的安裝位置和過時時間
4)使用443端口訪問服務器
修改/etc/nginx/ngxin.conf, 增長一個server
server { listen 443 ssl; listen [::]:443 ssl ipv6only=on; ssl_certificate /etc/letsencrypt/live/esl-hz.zkong.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/esl-hz.zkong.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/esl-hz.zkong.com/chain.pem; # 拷貝原server除listen以外的全部屬性到這 }
再reload一下nginx,就能夠使用 https://esl-hz.zkong.com/ 訪問服務器了(https默認使用443,無需另外指定端口號)。