curl怎么验证服务器证书,使用s_client但不是curl的客户端证书访问服务...

我使用nginx作为我的Web服务器与客户端证书身份验证.配置的相关部分是:

ssl_certificate /usr/local/etc/nginx/certs/ssl.crt;

ssl_certificate_key /usr/local/etc/nginx/certs/ssl.key;

ssl_client_certificate /usr/local/etc/nginx/certs/server_chain.crt;

ssl_verify_client on;

ssl_verify_depth 2;

客户端证书由另一台具有来自根CA的证书的服务器签名.即,我想接受具有证书链的客户,如下所示:

CA -> intermediate CA -> client

因此文件server_chain.crt由:

cat intermediate_ca.crt root_ca.crt > server_chain.crt

现在,我可以通过发出命令成功访问服务器:

openssl s_client -connect localhost:443 -tls1 -cert client.crt \n -key client.key -CApath root_ca.crt -state -debug`

然后键入GET / api

但是,如果我尝试使用以下方法来获得相同的服务:

curl -v -s -k --key client.key --cert client.crt https://localhost/api

我明白了:

400 No required SSL certificate was sent

400 Bad Request

No required SSL certificate was sent

nginx/1.6.0

我也无法从安装了客户端证书的Web浏览器访问localhost / api页面.如果我关闭客户端验证,那就有用了.

关于什么是错的任何想法?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值