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