现在有的运营商会劫持网站流量,添加自己的广告等等,开启https还是很有必要的。开启https比较简单的方法,就是使用let’s encrypt免费ssl证书,一次三个月的有效期,三个月后,脚本或者面板都可以自动续订。不过如果使用cdn,那么这个自动续订ssl证书就会遇到问题,因为域名解析到了cdn的ip,let’s encrypt续订的时候dns解析就不对了,导致无法自动续订。cloudflare官方也给出了解决办法,网上也有朋友讲解如何解决这个问题的。对于我来说,有更简单不用操心的办法就再好不过了。因为采用这些办法,网站搬家以后还得重新做一遍,设置脚本什么的,还是麻烦。ljchen采用的办法是使用cloudflare自己的ssl证书。这其实是一个自签证书,只有cloudflare自己认可,不加cdn直接使用的话,会被浏览器认为是不安全的网站。
一、cloudflare的SSL模式
cloudflare提供了四种不同的SSL模式。
Off: No visitors will be able to view your site over HTTPS; they will be redirected to HTTP.
Flexible SSL: You cannot configure HTTPS support on your origin, even with a certificate that is not valid for your site. Visitors will be able to access your site over HTTPS, but connections to your origin will be made over HTTP. Note: You may encounter a redirect loop with some origin configurations.
Full SSL: Your origin supports HTTPS, but the certificate installed does not match your domain or is self-signed. Cloudflare will connect to your origin over HTTPS, but will not validate the certificate.
Full (strict): Your origin has a valid certificate (not expired and signed by a trusted CA or Cloudflare Origin CA) installed. Cloudflare will connect over HTTPS and verify the cert on each request.
如果你的网站本身没有配置https,可以使用Flexible,cloudflare会自动给你改写https规则,并转发http到https。Full SSL的两种适用于网站自己有ssl证书的,不同的是strict只接受可信任的ssl证书,full ssl则不验证。如果你使用let’s encrypt就需要使用full ssl的两种规则之一。建议尽量自己在源站配置ssl,因为flexible ssl经常碰到很多问题,自动重写规则的时候容易遇到问题。我的一个WordPress站点,使用flexbible的时候后天就是打不开,很麻烦,换成full就一点问题都没有了。
二、cloudflare自签证书
cloudflare提供了15年的自签证书。
点击以后会出现创建ssl证书的界面。
点击next,会出现证书相关的两串字符串,一个是证书,一个是密钥。注意保存,遗失后无法找回。对于lnmp等等的建站方案,这两个是需要分别保存为pem和key文件的。不过对于appnode面板,只需要保存即可,因为面板中可以直接粘贴。
三、appnode面板设置
在appnode面板中,“软件管家”–“核心功能”中找到“ssl证书管理”,选择“导入证书”
在其中粘贴上刚才在cloudflare中申请到的密钥和证书,然后选择导入证书即可。
注:其实appnode也有自签证书功能,就在上面截图的“生成证书”,我没试过最长能生成多久的证书,之前试过365天是没有问题的。cloudflare的15年证书,他家自己是认可的,可以开启full ssl(strict)。我选择了cloudflare的证书。
进到appnode的网站设置中,选择刚才导入的ssl证书,部署网站即可。
以后备份网站或者搬家的时候,这些ssl证书也是会保存过去的,不需要再做其它的设置了。网站搬家的时候,在新服务器的appnode面板导入了网站,修改cloudflare中的dns解析地址即可,还是很方便的。