使用Cloudflare免费https证书

Cloudflare除了提供全球CDN加速,对于免费用户,它同样提供免费的https证书,并且这个https证书的有效期长达15年,于是给小站就使用了Cloudflare的免费https证书。

 

为什么选择Cloudflare

之前一直用的Let’s Encrypt免费https证书。但是它3个月需要更新一次,虽然可以写脚本更新,但是它的规则似乎会变化,对应的启动命令也不一样。并且,我用它的ssl证书,使用长城宽带无法与我的站建立安全连接,ssl握手会耗费非常久的时间,而如果科学上网后再连接就没有问题,我不知道是不是长城宽带做了什么限制。

选择Cloudflare一是因为已经使用了它提供的CDN加速服务,另一个就是看中它证书的时长,有效期长达15年。

cloudflare-https-expires-on

 

开启Cloudflare免费https

注册以及绑定域名就不再赘述了,详细可以参考我之前的一篇文章:开启Cloudflare免费CDN加速

选择https加密模式

登录后,选择Crypto模块:

cloudflare-https-levels

可以看到Cloudflare的免费https证书提供了4个层级,Off就是关闭https,Flexible就是http与https都可以访问,Full就是如果证书出了问题,会通过http请求继续访问,不会报错,而Full(strict)在https证书出问题的时候,因为全部时https连接,会直接报错。很明显,如果要全站做https,这里选择Full(strict)模式。

获取https证书

选择Create Certificate

cloudflare-create-https-certificates

之后就可以看到安装证书的界面:

cloudflare-https-install-certificate

将第三项过期时间调成最长的15年,点击Next。之后你就可以得到一个origin certificate和一个private key

 

服务器配置https证书

这里以Nginx为例配置Cloudflare免费https证书。

修改Nginx的配置文件,监听443端口,并且指向自己的证书地址:

之后重启Nginx,就可以看到全站都以及使用上了Cloudflare提供的https加密服务了~

Telegram频道已经开通,关注flyzythink,随手分享正能量,了解VPS优惠与补货
Telegram群组已经开通,加入flyzy小站,FREE TO TALK
QQ群开通:780593286 flyzy小站
点赞
  1. xy916说道:

    配置nginx那步,能加个修改后的图片吗?我修改后出错,想对比下

    1. flyzy小站说道:

      已经在QQ群回复你了

  2. Beyond0518说道:

    1
    2
    3
    4
    5
    listen 80 default_server;
    listen [::]:80 default_server;
    listen 443 http2 ssl;
    ssl_certificate /etc/flyzy2005.com.pem; # 对应origin certificate
    ssl_certificate_key /etc/flyzy2005.com.key; # 对应private key

    这里是在default中新增还是修改?server那部分吗?

    1. flyzy小站说道:

      就是对监听443的server节点指定ssl证书

      1. beyond说道:

        搞定了。多谢。评论后邮箱回复这个功能怎么搞的?写一篇呗。还有域名邮箱系统呢?

        1. flyzy小站说道:

          评论邮箱回复是主题里自带的,具体代码参考Kratos,搜索smtp关键字就能看到相关代码了。
          域名邮箱以后有机会可以考虑一波。

  3. Beyond0518说道:

    Failed to validate requested hostname *.ourfirstdog.com: This zone is either not part of your account, or you do not have access to it. Please contact support if using a multi-user organization. (Code: 1010)

    这是什么意思?有点不明白了。

    1. flyzy小站说道:

      你把DNS服务转到Cloudflare了吗?似乎是说无法验证你有这个域名的所有权

      1. Beyond0518说道:

        找到原因了,NameSilo那边的server name除了Cloudflare还多了一个NameSilo的。只保留Cloudflare的就ok了。DNS解析那里的配置能给我截个图吗?我不知道泛解析那个怎么配。

  4. alaivv说道:

    难怪是免费,而且15年,原来只是个外表,证书信息里面是颁发给sni209030.cloudflaressl.com而非本站点。

    1. flyzy小站说道:

      这有啥关系。你如果非要是颁给自己的,可以用Let's Encrypt,三个月更新一次

  5. guochens说道:

    "修改Nginx的配置文件"这个的配置文件在哪找啊。。。小白表示很无力。。

    1. flyzy小站说道:

      vim /etc/nginx/sites-available/default,可以参考:在Ubuntu上配置Nginx+MySQL+PHP7

      1. guochens说道:

        赞,好使了。。。
        期间执行
        nginx -t
        又出了
        SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE
        的问题,不知道啥情况,瞎改了一下,把**.pem最后加了一个回车就好了 :mrgreen:
        然后一路绿灯。。。

        1. nhao212说道:

          同样问题我加回车没有用呀

发表评论

电子邮件地址不会被公开。 必填项已用*标注