将你的博客免费升级至 HTTPS

1,223 阅读2分钟
原文链接: ghui.me

老早就听说letsencrypt了, 它是一个提供免费https证书的机构。随着Https的盛行,现在越来越多的网站都迁移到了Https。 至于为什么要用Https及Https的优缺点大家可以参考这里,下面记录一下我的迁移过程.

安装

打开letsencrypt的首页,点击Get Started, 提供了两种安装方式,我这里使用的是第一种。具体步骤如下:

  1. 打开certbot.eff.org/
  2. 选择你使用的Web服务器与Linux版本。选择好后就会自动打开一个针对你的环境的安装页面,我的服务器是Nginx, Linux版本是Ubutu14.04, 打开的页面是certbot.eff.org/#ubuntutrus…
  3. 按照页面指示:一步一步的装就行了。针对我这处版本的安装步骤如下:

    1. wget https://dl.eff.org/certbot-auto
      chmod a+x certbot-auto
      
    2. ./certbot-auto 按照页面提示一步一步走。

    3. 最后如果安装成功会看到如下的提示: Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/xxx/fullchain.pem. Your cert will expire ...
  4. 修改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链接全部替换回来即可。

参考

  1. 拥抱 HTTPS 和 HTTP/2
  2. 是时候支持 HTTPS 了

版权声明

文章版权归本人所有,如需转载需在明显位置处保留作者信息及原文链接 !