首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wget中使用客户端证书

在wget中使用客户端证书
EN

Server Fault用户
提问于 2009-10-12 17:58:32
回答 6查看 85.3K关注 0票数 12

我不能让wget使用客户端证书。文档中提到使用--证书标志。

证书标志的使用是明确的,我将其设置为使用客户端证书的PEM版本。

但是,当我连接时,我会得到以下错误:

代码语言:javascript
复制
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可以连接。注意:建议使用卷发,但我想避免使用这个开关。

EN

回答 6

Server Fault用户

发布于 2013-02-01 12:00:28

我学习了一周,最后得到了这一页的帮助。

我用来连接的命令是:

代码语言:javascript
复制
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
票数 11
EN

Server Fault用户

发布于 2009-10-12 20:58:13

您确定SSL客户端证书身份验证是针对您的服务器的吗?

我刚刚测试了我可以拿我的证书(以PKCS12格式),转换成证书和密钥文件的PEM格式,并使用它与wget只是很好。

我可以引发三种错误条件,它们都不符合您所报告的内容:

  1. 未能提供我的密钥文件: 400坏请求
  2. 提供一个坏密钥: EVP_DecryptFinal_ex:bad从OpenSSL解密
  3. 提供服务器不喜欢的有效证书: 403禁用

我使用的是nginx;您没有提到所使用的内容,所以我不确定Apache是否会返回相同的响应。

我建议使用您的证书和密钥,将其合并到PKCS12中(如果浏览器支持该格式,只需将其作为PEM导入),并确保所有工作都在这方面进行。

如果您已经这样做了,也许您可以从另一台机器上尝试,以确保您使用的OpenSSL版本并不奇怪。

最后,尝试在OpenSSL模式下使用s_client:

代码语言:javascript
复制
openssl s_client -cert cert.pem -key req.pem -connect host:port -debug

看看事情在这个层面上是否有效。如果是这样的话,那么wget就会有问题,您可能需要重新构建或重新安装它。如果没有,调试输出的级别可能会比wget的调试输出更能帮助您定位问题。

票数 4
EN

Server Fault用户

发布于 2009-11-11 16:08:15

我成功地使用了这样的wget:

代码语言:javascript
复制
"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通行证短语:”。

如果我输入密码,它可以工作,但有谁知道如何绕过提示?

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/73744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档