gpt4 book ai didi

ssl - wget:它在哪里寻找证书?

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:42 26 4
gpt4 key购买 nike

我有一个 HTTPS 站点,需要中间证书来验证服务器 SSL 证书。

如果我将中间证书放入/etc/ssl/certs(并创建散列链接)

openssl s_client -connect IP:PORT

会起作用。否则我会收到验证错误。

wget 在哪里查找证书?如果我在 wget 中明确设置 --ca-directory,我只能让它工作。

所以 openssl 似乎会查看/etc/ssl/certs 而 wget 不会。

谢谢!

编辑

如果我用 -d 运行 wget 然后我看到没有 --ca-directory 它加载大约150个证书。有了这个选项,它超过了 300。所以我认为它必须是另一条路径,然后是 openssl-default。

Debian 10 上的 linux-gnu 上的 Wget 1.19.4

最佳答案

根据 wget 的联机帮助页:

Without this option Wget looks for CA certificates at the system-specified locations, chosen at OpenSSL installation time.

那是哪里? Turns out, that's complicated .这取决于你的系统等。

找出wget实际做了什么的简单方法是

  1. 读取它的输出:

    Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'

  2. 使用 strace:

    strace wget https://your-url

    在输出中,您可以读取 wget 打开、尝试打开的文件等。

由于 strace 产生了相当多的输出,您可能希望将其限制为某些系统调用。看起来 wget 使用 openat 来读取文件,所以:

strace -e openat wget https://your-url

包含有趣的行:

openat(AT_FDCWD, "/usr/share/ca-certificates/trust-source/mozilla.trust.p11-kit", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/usr/share/ca-certificates/trust-source/anchors/CAcert.org_root.crt", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/usr/share/ca-certificates/trust-source/anchors/CAcert.org_class3.crt", O_RDONLY|O_CLOEXEC) = 4
openat(AT_FDCWD, "/etc/ssl/certs/ca-certificates.crt", O_RDONLY) = 3

它查看的位置甚至更多,它们甚至可能因您的系统而异。

关于ssl - wget:它在哪里寻找证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48949008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com