我不能让wget使用客户端证书。文档中提到使用--证书标志。
证书标志的使用是明确的,我将其设置为使用客户端证书的PEM版本。
但是,当我连接时,我会得到以下错误:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.ssl握手失败意味着客户端没有提供正确的客户端证书。我使用的客户端证书仍然在浏览器中工作。
注意:当我禁用服务器上的客户端身份验证时,wget可以连接。注意:建议使用卷发,但我想避免使用这个开关。
发布于 2013-02-01 12:00:28
我学习了一周,最后得到了这一页的帮助。
我用来连接的命令是:
wget --ca-cert=/etc/ssl/certs/winhostname.pem --certificate=/etc/ssl/private/linuxhost.pem \
--private-key=/etc/ssl/private/linuxhost.key https://winhostname.home.net:8443/winhosturl.asmx发布于 2009-10-12 20:58:13
您确定SSL客户端证书身份验证是针对您的服务器的吗?
我刚刚测试了我可以拿我的证书(以PKCS12格式),转换成证书和密钥文件的PEM格式,并使用它与wget只是很好。
我可以引发三种错误条件,它们都不符合您所报告的内容:
我使用的是nginx;您没有提到所使用的内容,所以我不确定Apache是否会返回相同的响应。
我建议使用您的证书和密钥,将其合并到PKCS12中(如果浏览器支持该格式,只需将其作为PEM导入),并确保所有工作都在这方面进行。
如果您已经这样做了,也许您可以从另一台机器上尝试,以确保您使用的OpenSSL版本并不奇怪。
最后,尝试在OpenSSL模式下使用s_client:
openssl s_client -cert cert.pem -key req.pem -connect host:port -debug看看事情在这个层面上是否有效。如果是这样的话,那么wget就会有问题,您可能需要重新构建或重新安装它。如果没有,调试输出的级别可能会比wget的调试输出更能帮助您定位问题。
发布于 2009-11-11 16:08:15
我成功地使用了这样的wget:
"C:\program files\GnuWin32\bin\wget" --no-check-certificate --certificate=C:\Users\Alex\xxx.pem --private-key=C:\Users\Alex\xxx.pem --input-file=retain.url --output-document=retain.xml注意--private-key option。retain.url有https://bla.bla.bla
然而,它现在提示我“进入PEM通行证短语:”。
如果我输入密码,它可以工作,但有谁知道如何绕过提示?
https://serverfault.com/questions/73744
复制相似问题