在使用cloudflare时发现了SSL的证书安全问题,经过一段时间的折腾,证书安全问题倒是解决了。但是我发现cloudflare里SSL显示的有效证书与我网站的真实证书不一致,所以就找到了这个调用官方API的方法。但调用成功后,我发现网站的实际证书还是不一样(很可能是我一开始瞎搞弄成这样的/(ㄒoㄒ)/~~)。总之静观其变吧,看看它续签的时候会不会换回来…(ノへ ̄、)
错了错了,因为我的博客网站是部署在github上的,而github pages为自定义域名颁发的证书和cloudflare的证书有没有关系,这取决于cloudflare SSL/TLS的加密模式。
灵活就没有关系,同时证书使用的是cloudflare提供的。
完全就是有关系但如果源服务器没有提供证书访问网站时就会提示不安全。
完全(严格)的话,源服务器没有提供证书就无法访问。
但如果不开启小黄云代理的话,那cloudflare只是帮你完成DNS解析, 其效果相当于直接连接源服务器, 并没有开启CDN加速,且根据模式是否检查源服务器的证书。
通过 API 改变证书(可能需要代理)
输入(适用于 Mac/Linux):
1 | curl -sX PATCH "https://api.cloudflare.com/client/v4/zones/[DOMAIN_ZONE_ID_HERE]/ssl/universal/settings" -H "X-Auth-Email: [CLOUDFLARE_EMAIL_HERE]" -H "X-Auth-Key: [GLOBAL_API_KEY_HERE]" -H "Content-Type: application/json" --data '{"certificate_authority":"google"}' |
或者(对于 Windows):
1 | curl -sX PATCH "https://api.cloudflare.com/client/v4/zones/[DOMAIN_ZONE_ID_HERE]/ssl/universal/settings" -H "X-Auth-Email: [CLOUDFLARE_EMAIL_HERE]" -H "X-Auth-Key: [GLOBAL_API_KEY_HERE]" -H "Content-Type: application/json" --data "{\"certificate_authority\":\"google\"}" |
[DOMAIN_ZONE_ID_HERE] 更改为 Zone ID,也就是控制面板显示的那个
[CLOUDFLARE_EMAIL_HERE] 为 Cloudflare 电子邮件地址
[GLOBAL_API_KEY_HERE] 为全局 API 密钥
注意不要包含 "[" 和 "]"
返回以下内容代表成功
{"result":{"enabled":true,"certificate_authority":"google"},"success":true,"errors":[],"messages":[]}
查看当前证书(Linux)
1 | openssl s_client -connect yourdomain.com:443 |
说些什么吧!