老早就听说letsencrypt了, 它是一个提供免费https证书的机构。随着Https的盛行,现在越来越多的网站都迁移到了Https。 至于为什么要用Https及Https的优缺点大家可以参考这里,下面记录一下我的迁移过程.
安装
打开letsencrypt的首页,点击Get Started, 提供了两种安装方式,我这里使用的是第一种。具体步骤如下:
- 打开certbot.eff.org/
- 选择你使用的Web服务器与Linux版本。选择好后就会自动打开一个针对你的环境的安装页面,我的服务器是Nginx, Linux版本是Ubutu14.04, 打开的页面是certbot.eff.org/#ubuntutrus…
按照页面指示:一步一步的装就行了。针对我这处版本的安装步骤如下:
wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto
./certbot-auto
按照页面提示一步一步走。- 最后如果安装成功会看到如下的提示:
Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/xxx/fullchain.pem. Your cert will expire ...
修改Nginx的相应配置:
server { listen 443 ssl; //将80修改为443 server_name ghui.me; ssl_certificate /etc/letsencrypt/live/ghui.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ghui.me/privkey.pem; } #将所有的http请求跳转到https上 server { listen 80; listen 443 ssl; server_name *.ghui.me ghui.me; return 301 https://ghui.me$request_uri; }
修改完成后保存, 先执行nginx -t
检查一下配置,无误后执行sudo service nginx restart
重启一下nginx即可.
完成上面的所有步骤后这时访问你的网站就会看到网站已经是Https的了。
自动续签
默认情况下letsencrypt
的签名有效期只有3个月,期限到后如果你忘了去续签再去访问网站就会出现签名错误。
续签可以执行:certbot-auto renew
不过letsencrypt
也提供了自动续签的方法:
./certbot-auto renew --dry-run
./certbot-auto renew --quiet --no-self-upgrade
替换非Http链接为Https
如果你的网站上引用的有非https的链接,浏览器在地址栏上会有一个警告,标识此网站并非全站支持Https。要解决这个问题只能是想办法将引用的Http链接替换为Https的。我的博客上的图片之前是放在七牛上的所有的图片链接也是非Https的,好在现在它已经支持Https了,你需要去七牛上设置一下,然后再把之前的Http链接全部替换回来即可。
参考
版权声明
文章版权归本人所有,如需转载需在明显位置处保留作者信息及原文链接 !