记一次Cloudflare不签发证书的解决过程 - qNFCpの屋
qNFCpの屋

Cloudflare之前用的好好的,四五年未出问题,上个月某日起便出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误。

此网站无法提供安全连接www.qnfcp.xyz 使用了不受支持的协议。
ERR_SSL_VERSION_OR_CIPHER_MISMATCH


错误表现

客户端表现:

  • 页面显示 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误
  • 浏览器无法查看到证书
  • curl测试访问显示:curl: (35) schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE (0x80090326) - This error usually occurs when a fatal SSL/TLS alert is received (e.g. handshake failed). More detail may be available in the Windows System event log.

Cloudflare面板表现:

  • SSL/TLS-->边缘证书(Edge Certificates)中,不显示域名证书 或 显示过期的证书

问题分析

  • 此问题的出现主要是Cloudflare未正确进行证书(续期)签发导致的。
  • 由于需要使用CNAME接入方式使用cloudflare,因此曾使用Cloudflare Partner面板(下称CFP)。但使用的面板提供者已停止服务。
  • Cloudflare升级业务后SSL/TLS新增收费功能“高级证书管理器(Advanced Certificate Manager)”。
  • Cloudflare升级业务后SSL/TLS菜单下出现了新的功能“自定义主机名(Custom Hostnames)”。可能是因此功能间接影响了原CFP的自动证书签发。

问题解决

解决过程中需使用API增加一条域名解析用于默认回退源。如已有工具可忽略此处内容
API工具 CloudMare(安卓) 或 调用接口:Create DNS Record
需使用API Token页面中的API 令牌

  • 使用API/API工具新增一条解析 a.domain.com(供回退源使用)
  • 开启 SSL/TLS-->自定义主机名(初次填写需填写VISA/Mastercard等国际信用卡信息,前100条免费)
  • 设置 自定义主机名-->回退源 为 a.domain.com
  • 添加 自定义主机名-->添加自定义主机名 ssl.domain.com(需使用HTTPS的域名)
  • 按需进行域名验证(验证可能需要几分钟)
  • 等待证书签发。(边缘证书处不会新增,如开启了 证书透明度监视(SSL/TLS-->边缘证书-->证书透明度监视),将收到证书签发邮件)
  • 自定义主机名处显示证书状态显示为 有效 此时网站应恢复正常。
  • (如网站未正常)请检查Cloudflare是否配置有 ssl.domain.com(需使用HTTPS的域名) 的解析(需使用API或工具检查)

提示:自定义主机名的回源依旧会使用Cloudflare API设置的解析。


原理分析

  • 由于边缘证书的自动签发失效,导致CDN节点未配置证书出现错误
  • 通过使用 自定义主机名 功能进行证书签发后,CDN节点成功获取到证书,因此恢复正常。
  • 回退源优先级可能低于API设置的解析,因此自定义主机名的回源依旧受API设置的值控制。

其他可能有用的

  • DNS处的CNAME接入格式 [full_hostname].cdn.cloudflare.net
    例如 域名a.b.com ,主机记录a,记录类型CNAME,记录值a.b.com.cdn.cloudflare.net

此笔记仅供参考,作者不对内容实时有效性负责。

暂无评论

添加新评论

Title - Artist
0:00