从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,无需另外指定端口号)。

相关文章
相关标签/搜索