wget
我正在尝试使用或类似程序访问仅可使用客户端证书的内部公司网站curl
。我可以使用 IE 和 Chrome 访问此网站。
如何从 导出证书IE
并使用它wget
?
到目前为止,我已经尝试过以下方法,但没有成功
从 IE 导出格式不带私钥的
der
格式并使用wget --certificate-type=DER
使用私钥从 IE 导出,
pfx
并使用它--certificate-type=DER
按照上述方法从 IE 导出,然后
pem
使用命令转换为openssl pkcs12 -in cert.pfx -out cert.pem -nodes
无需--certificate-type=DER
答案1
您必须拥有匹配的私钥才能使用客户端证书向服务器进行身份验证。提供没有匹配私钥的证书就像提供没有密码的用户名一样。任何人都可能知道您的用户名,或者复制了您的证书。这并不能证明您是你,因此不能用于身份验证。就像知道密码证明您是某个用户名的所有者一样,私钥是只有您知道的秘密,可以证明您是证书的真正所有者。
因此,您需要以某种方式导出证书和匹配的私钥,并将它们都转换为 DER 或 PEM 格式,然后wget
通过适当的命令行参数将它们提供给它们。
我没有看到wget
为你的私钥传递加密密码的方法,这太糟糕了,因为这意味着你必须将你的私钥以未加密的形式保存在磁盘上,这是大忌。机密始终应该“静止时加密”(即在磁盘上时),以及“传输时加密”(即在网络上)。
它看起来比这方面curl
要好,因为有选项,所以您可以将您的私钥加密保存在磁盘上。在某些平台上,似乎还有一些选项可以将您的私钥留在钥匙串中。wget
curl
-E, --cert <certificate[:password]>
curl