V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qazwsxkevin
V2EX  ›  站长

请教 cloudflare 买域名+15 年证书和另外 certbot 申请 let's encrypt 证书的一些问题?

  •  
  •   qazwsxkevin · 17 天前 · 1099 次点击

    想着方便,在 cf 买了域名(第一次),域名也办了它家配套的 15 年 SSL 证书,配在捆绑域名的服务器上正常使用。。。

    有个不明白,先问"是不是"

    1 、是不是 cf 的 SLL 证书,必须要控制面板(cf dash)里面开启了 DNS 代理,才能“正常”使用?
    在 cf dash 里,设置代理状态为“仅 DNS”,浏览器就提示网站有风险了。。。

    2 、如果在 cf dash 里开启了这个域名的 DNS 代理状态,在 web 服务器的日志看到,客户端浏览器只有第一次访问静态页面的记录被记录下来,后面客户端不用缓存,web 服务器都没有记录了,cf 代理似乎是缓存了我的 web 页面?
    我不希望这样,能否关闭这个缓存?如果关闭 DNS 代理,SSL 证书又不正常了。

    3 、于是就想着试试 certbot 申请 let's encrypt 证书先试试看,关掉 cf dash 的 DNS 代理,关掉 web 服务器防火墙,使用

    提示:

    To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address. Additionally, please check that your computer has a publicly routable IP address and that no firewalls are preventing the server from communicating with the client. If you're using the webroot plugin, you should also verify that you are serving files from the webroot path you provided.
    

    nslookup 我的域名,提示是:Non-authoritative answer

    今晚折腾了几次,现在 let's encrypt 提示:There were too many requests of a given type :: Error creating new order :: too many failed authorizations recently:

    郁闷了,如何破? 发个求答了。。。。

    10 条回复    2024-06-01 10:07:12 +08:00
    codehz
        1
    codehz  
       17 天前   ❤️ 1
    cloudflare 给的那个 15 年的证书是专门给你源服务器和 cloudflare 服务器通讯用的。。。。。
    一般没啥需求直接用 flexible 模式就好了,根本没必要绕一圈。。。
    xmumiffy
        2
    xmumiffy  
       17 天前 via Android   ❤️ 1
    那证书只是 cf 内部信任的,不是让你拿出去用的,乖乖用 LE 或者买吧
    qazwsxkevin
        3
    qazwsxkevin  
    OP
       17 天前
    明白了,那现在我是不是要把域名转出来先,再去弄 le 的证书?
    现在 cf 管理的域名,似乎申请不了 le 的证书?
    icaolei
        4
    icaolei  
       17 天前   ❤️ 1
    @qazwsxkevin #3 把 DNS 代理小云朵关掉再申请证书。
    或者用 ACME.SH 的 DNS 申请模式。
    flynaj
        5
    flynaj  
       17 天前 via Android   ❤️ 1
    acme.sh 的 DNS 验证,可以申请通配符证书。域名不需要转。
    yanghanlin
        6
    yanghanlin  
       17 天前   ❤️ 1
    用 Let's Encrypt 申请证书可以先用 staging environment https://letsencrypt.org/docs/staging-environment/ 测试,rate limit 宽松很多
    cosette
        7
    cosette  
       17 天前   ❤️ 3
    cf 提供两个服务,这两个服务作用是不一样的,1. DNS 解析服务; 2. cdn 服务。

    你可以只使用 dns 解析服务,而关闭 cdn 服务(关闭解析记录后面的小云朵就行),这个时候只是通过 cf 的 nameserver 解析你的域名到你设置的 ip ,相当于域名解析托管在 cf 。

    开启 cdn 服务的时候,解析到 cf 的 ip (一般都是 anycast ip ),也就是访问域名实际上先访问 cf 的边缘服务器,然后 cf 服务器回源请求你的服务器,获取资源,这个过程中某些静态资源可能会被 cf 缓存以加速访问,你也可以自己设置缓存的内容和 TTL 。这个过程有一个问题,就是实际访问你的源服务器的是 cf 的 ip 地址,真实 ip 会放在请求头里面,所以如果你想获取真实用户 ip 需要处理一下。

    cf 的 origin certificate 只能用在 cf 的服务器回源用,也就是用于源服务器和 cf 之间的通信,如果你想申请一个“真正”通用的证书,要不然买,要不然用 LE 之类的免费证书。

    LE 证书申请现在用很多自动化工具,certbot 、acme.sh 等等,操作都比较简单,仔细看一遍文档。要注意的是 LE 的申请请求有频率限制,短时间内请求太多(包括申请失败)会被封禁,需隔一段时间再申请。
    NekoNeko666
        8
    NekoNeko666  
       17 天前 via iPhone   ❤️ 1
    LE 证书的话,也可以直接用 DNS 验证模式,直接添加一条 TXT 记录就可以申请。然后,这样申请后,你再正常运行一遍 LE ,他会提示帮你自动安装证书(当然你也可以自己修改配置) sudo certbot certonly --manual --preferred-challenges dns --debug-challenges -d \*.your-domain -d your-domain
    cnhongwei
        9
    cnhongwei  
       17 天前   ❤️ 1
    1, CF 给的源服务器证书,不能在外面用,只是 CF 和源服务器通讯用的内部证书。开了小云朵,CF 做了代理,证书是 CF 自动颁发和更新的,也是 3 个月的证书,没有开小云朵,CF 只做 dns ,证书就是你服务器的证书,所以你服务器得找个免费的证书。用 acme.sh 很简单,通过 dns 验证方式,开不开小云朵都能正常更新。
    2. 开小云朵后,CF 做代理,默认是对所有的资源都做缓存,而缓存的时间是根据你服务器返回的 maxage 等缓存控制参数来缓存的,你可以在缓存这个菜单是修改默认的控制,也可以清除缓存,还可以设置为开发模式,不缓存但小云朵功能生效。 如果你的服务器在国外,我还是推荐打开小云朵的,有缓存,你服务器的压力就小了,特别是图片。服务器在国内,就不要开了。
    3. 申请证书使用 acme.sh 的 dns 验证模式,在 cf 上设置一个 token 。
    Yanel
        10
    Yanel  
       17 天前   ❤️ 1
    CF 开启云朵后是使用的边缘证书( Edge Certificates ),CF 自动申请的 Let's Encrypt's 的证书,有效期 3 个月并且会自动续签,如果服务器上没有申请域名证书,可以使用 Flexible 模式。

    如果要使用 Full 模式的 SSL ,那么 CF 和原服务器必须要证书,要么源服务器使用自签名证书,要么下载 CF 的源服务器证书( Origin Server )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:39 · PVG 20:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.