目 录CONTENT

文章目录

网站SSL证书自动续期又又又失败了?试试CloudFlare的免费证书,15年有效期!

咕咕
2022-08-12 / 0 评论 / 0 点赞 / 47 阅读 / 7993 字
温馨提示:
本文最后更新于 2024-02-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

背景

不知道小伙伴有没有遇到过这样的问题:

1、用宝塔建站的,SSL证书也是用宝塔申请的Let's Encrypt免费证书(有效期3个月)虽然说宝塔后台有自动续签的功能,但是你会发现,经常续签失败,影响网站正常运行;

2、配置的certbot 自动更新证书,偶尔也会遇到小问题。

Nginx Proxy Manager目前咕咕暂时没有遇到续期问题 :)

当然,如果你的网站是http的,你完全不用考虑这个问题。

但是,对于有强迫症的人来说,看到浏览器网址边上显示“不安全”,非常的难受,而且,其实对于一个“现代”的网站来说,SSL是标配了。

6a6bc385f527fb3f5b470ed8fd33f3e2.png

有没有一种证书,可以有效期长一些,不用像 Let's Encrypt 的证书的一样,三个月就得更新一次?(虽然也有自动化脚本代劳,但还是保不齐哪天因为出错导致证书过期了,网站打不开。)

有的。

全球领先的 CDN 服务商 Cloudflare 则提供了 15 年有效期的证书,堪称业界良心。

前提是,你需要使用Cloudflare的CDN服务(开启小黄云图标)

注意开启之后,如果你是国内的服务器,速度会变慢,如果你是国外的服务器,尤其是线路比较差的服务器,速度会有所改善。另外CDN还有保护源站IP,防止IP被墙的功效。

关于CDN的更多介绍,可以看这篇文章:CDN加速-隐藏真实IP-复活IP

具体操作

1. 添加域名到Cloudflare

要使用Cloudflare(以下简称CF)的证书,首先你得把你的域名托管到CF上来进行DNS解析(注意不是转移域名,域名哪里买的还是在哪里续费,只是不用在域名注册商的后台进行域名解析了)。

注册一个CF的账号:

https://dash.cloudflare.com/sign-up

83304a7bc25b39c071b0046c281ab80e.png

登陆之后,添加域名

2674200c15767ae1ae836dd12b2f3e33.png

输入你的域名,点击添加站点,

c84e1caa5e802ede6cf61e65080285c0.png

选择免费计划

046675b11395062926c3c5f661758060.png

继续,

8acd064317e22951179ffd2fbedc28eb.png

9d094b24db69d0a46a2c26c0a1583103.png

2. 修改 Name Server

这边以Namesilo为例子:

Namesilo自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些丑古老 = =)

【域名购买】Namesilo优惠码和域名解析教程(附带服务器购买推荐和注意事项)

如果想要长期使用,还是建议买com后缀的域名,更加正规一些,可以输入laodade来获得1美元的优惠(不知道现在还有没有)

在购买域名的服务商的管理后台,修改域名的 Name Server,修改成 Cloudflare 的域名服务器。请填写 Dashboard 中给出的地址,不一定和笔者的完全一样,地址格式是*.ns.cloudflare.com

比如上面就是:marjory.ns.cloudflare.commitchell.ns.cloudflare.com

具体位置在这里:

https://www.namesilo.com/account_domains.php

03dec0b00cf01bf099cbbcd659657c16.png

点击 change

5ff0445a86b16219ead42f8ac6925f42.png

点击具体的域名:

输入CF上面提供的ns即可。

比如上面就是:marjory.ns.cloudflare.commitchell.ns.cloudflare.com

ee4aad99fc2d05d5be9df7d0d0f0d8f8.png

之后记得点击保存。

同时回到CF,点击完成。

02566faf262fb3343646d961d4fdaac5.png

大概过半小时左右,你注册CF的邮箱就能收到类似的邮件了,表明现在可以用CF来做域名解析啦。

6febfd2f12746fee3de89cd788414b7b.png

3. 添加 DNS 解析

点亮橙色小云朵,表示经过 Cloudflare 的代理,客户的请求由 CF 转发到我们的源服务器,即客户不知道也不能直连我们的服务器 IP。

581b3340b1dff88cc1f0c4485f681fba.png

注:一般服务器都应该配置,不能直接用 IP 访问,以免被 Script Boy 全网段扫描。

4. 开启 Full SSL/TLS(完全严格模式)

在顶部的菜单条(新版在侧边栏),找到锁标志(SSL/TLS),修改通信链路加密方式为:Full(strict)。

选择 Full SSL/TLS 严格端对端加密

这里有四个 SSL 加密选项,然而本页面的文字描述都比较简单,这几种模式之间具体有什么区别呢?

笔者先读了一遍官方的说明文档,对各自适用的场景有了大致的了解;并参阅了森见鹿博客的学习笔记,加深了理解;最后结合自己上手的实践过程,分别展开说明如下表。

表 1: Cloudflare SSL 加密参数说明表

参数含义优点缺点
OFF完全不加密,即不使用 Https 协议无加密,明文裸奔容易遭受到中间人攻击Chrome 等浏览器会显示该网站不安全影响搜索引擎收录
Flexible你的网站用户和 Cloudflare 之间有加密连接,但是从 Cloudflare 到你的服务器没有加密。即半程加密就算你的网站没有 SSL 证书,用户也能实现 SSL 加密访问。不安全,在 Cloudflare 到源站中仍存在中间人攻击的风险你的服务器开启了 Http 转 Https,会导致 Redirect 死循环,浏览器报错 Too Many Redirects
Full全程加密,从用户到 CDN 服务器再到你的网站,全程都是 SSL 加密的,反之亦同。只要你的服务器有 SSL 证书,就可以实现 SSL 加密访问。不限制证书。 openssh 自签名证书还是正规机构签发的 SSL 都可用在 Cloudflare 到源站中仍存在中间人攻击的风险(包括通过证书劫持和伪造等方式,与严格模式不同,Cloudflare 不会对源站的证书进行审核)
Full (strict)全程加密,它与 Full SSL 的区别在于你的服务器必须是安装了已受信任的 SSL 证书(即购买的或正规机构签发的 SSL 证书),否则无法开启 SSL 加密访问。安全 新增了对证书的认证,源站如果配置了自签证书、非可信证书或过期证书,那么 Cloudflare 会回复客户端访问失败并返回 526 响应码

注:这四种模式仅在启用了 Cloudflare 的 CDN 后——即点亮了橙色小云朵——才有效。如果只是把 Cloudflare 用作 DNS 解析,那么上述的加密模式都不会起作用!

若是有选择困难症,森见鹿同学整理了常用需求对应的模式,请参照下面的流程图:

加密模式选择流程图

5. 创建 CF 证书

切换到 Origin Server 选项卡,创建 Origin Server Cetificate 源服务器证书(由 Cloudflare 免费签名)。

创建 SSL 证书

6. 填写证书的生成参数

选填待生成证书的参数

  • 密钥类型:2048 位的 RSA 私钥
  • 作用域名:适用于哪些域名(子域名),支持通配符匹配。默认作用范围是 your.site, *.your.site。如果要添加域名的其它级别,例如,通配符未覆盖的级别(如 one.two.your.site)可在文本框中追加。
  • 有效年限:15 年

7 获取生成的证书和密钥

获取公私钥对

  • 密钥格式:根据你的使用环境来选择公私匙对的格式。
    • 大部分基于 OpenSSL Web 服务(如 Apache and NGINX)都是使用 PEM 文本文件(Base64 encoded ASCII),同时也兼容二进制格式的 DER 文件;
    • Windows 系统或 Apache Tomcat 服务则是 PKCS#7 格式。

分别拷贝源证书和私钥内容,保存好。

注意:私钥内容不会存在 Cloudflare。一旦创建完成后,公共证书可以重复下载,但私钥内容无法从 CF 后台再次拷贝,请自行妥善保管。

之后如果是用宝塔面板,直接拷贝到对应的位置即可。

ada2985cce20205c748437e3503a28de.png

如果是自己装的Nginx,为了安全考虑,应限制只有 Web 服务能够读取。例如,假如你是使用的 Nginx,它是以 www-data 用户运行的,因此,文件的权限设置成 root 才能写入,而 www-data 用户只能读取,权限细节如下:

# 设置用户和用户组
chown -R root:www-data /path/to/your/cert/dir
# 设置文件夹和文件权限
chmod 750 /path/to/your/cert/dir
chmod 640 /path/to/your/cert/dir/*

别忘了重新载入(或者重启)Nginx,一般重新载入即可。


# 重载 Nginx
$ sudo systemctl reload nginx


# 重启 Nginx
$ sudo systemctl restart nginx

最后

重新刷新一下网页,发现已经有https了!

6b35b45b5b46f0b41ab11590eec6556c.png 88b7c637322a565196997dd1bd77dbec.png

两个字,舒服!

十五年之内不用再更换证书啦!

希望你的网站也可以坚挺到15年换证书的那一天 = =

参考

https://muwaii.com/posts/try-cloudflare-free-15-year-ssl-certificate (咕咕基本都是抄的,感谢!)

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
广告 广告

评论区