我需要使用 向网站发出请求curl
,但网站没有在 tls 中提供中间证书。
我的意思是说:
当使用 TLS 连接到服务器时,它必须(rfc5246 F.1.1、rfc5246 7.4.2)向客户端提供足以验证服务器证书的所有证书。这意味着当连接到www.google.com时,它会为我提供主机证书 (*.google.com) 和中间证书 (GTS CA 1C3) 和根证书 (GTS Root R1)。当连接到问题站点时,它仅提供主机证书。
示例:openssl s_client -connect google.com:443 -showcerts 2>&1 < /dev/null
- 给您 3 个证书。
对于大多数浏览器来说这是可以的,但对于 CURL 来说就不行了。
所以我必须使用curl --insecure
或手动更新该网站的捆绑包。
我想让我的连接安全,但自动进行。
是否有某种工具可以从 url 构建完整的证书链,根据根 CA 捆绑包对其进行验证,并输出值以在curl --insecure --pinnedpubkey <value>
验证失败时使用或不使用?