我需要调用一个使用自签名证书的 HTTPS REST API (Kubernetes)(几乎所有的 Kubernetes 集群都是这样)。
我有集群的根 CA 证书(还有客户端证书。请参阅 docs)
如何在浏览器和无需用户交互(例如,无需用户下载和安装 CA 证书)的情况下发出此 HTTPS GET 请求?
使用普通的 fetch
会引发 ERR_CERT_AUTHORITY_INVALID
错误。 axios
库文档对于它们支持的内容非常混乱,我不确定它们是否支持浏览器中的 CA。
答案 0 :(得分:0)
如何在浏览器中发出此 HTTPS GET 请求且无需用户交互(例如,无需要求用户下载并安装 CA 证书)?
您的设置无法做到这一点。浏览器将只接受由预定义的受信任证书颁发者颁发的证书。如果有一种方法可以默默地接受除此之外的任何东西,那么中间人的隐形人攻击将很容易。
因此您必须选择:让用户接受您的证书或获得公共 CA 颁发的证书。鉴于此类证书可以免费,后一种选择可能更容易。