连接firebaseio.com时需要使用什么CA证书完成安全连接验证?
解决步骤
- 第一步:获取firebaseio.com对应域名的完整证书链
替换命令中的项目ID后执行openssl命令拉取实时证书链:openssl s_client -showcerts -connect 你的项目ID.firebaseio.com:443 < /dev/null
输出内容中所有以-----BEGIN CERTIFICATE-----开头、-----END CERTIFICATE-----结尾的块就是完整证书链,顺序从叶证书、中间CA证书到根CA证书依次排列。 - 第二步:提取并信任对应的根CA证书
你之前尝试的公共根CA不生效,大概率是你选取的根证书和当前firebaseio.com部署的证书对应根CA不匹配。从上述输出的证书链最末尾提取根CA证书内容,保存为后缀为.pem的文件,添加到你的代码运行环境的CA信任存储中即可。
注意不要直接信任叶证书,叶证书有效期通常仅3个月,到期更新后会再次出现连接失败问题,根/中间CA证书有效期普遍在5年以上,稳定性更高 - 第三步:验证证书有效性
你可以用curl命令快速校验证书是否可用,替换对应参数后执行:curl --cacert 你保存的根证书路径.pem https://你的项目ID.firebaseio.com/.json
若能正常返回响应内容则说明证书配置正确。
额外注意事项
- 不同编程语言/运行环境的CA信任存储路径不同,配置时需要对应导入:比如Python requests库默认使用certifi包内置的CA库,Java环境需要将证书导入cacerts密钥库,Node.js可以通过环境变量
NODE_EXTRA_CA_CERTS指定额外信任的证书文件。 - 不要为了临时解决问题禁用SSL证书校验,会存在中间人攻击的安全风险,完全不推荐该操作。
内容的提问来源于stack exchange,提问作者Rob Macklin
相关产品推荐
相关产品推荐

