從HTTP到HTTPS

研究了一下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,無需另外指定端口號)。

相關文章
相關標籤/搜索