php sslv3握手失败,尝试使用客户端证书时解决sslv3警报握手失败

我正在尝试连接到需要证书才能进行授权的服务。过程是我向服务发送一个CSR文件。该服务在CSR上签名并向我发送一个用于连接的证书。我通过以下命令行生成CSR:openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr

我把cert.csr的内容发给了他们。他们生成客户端证书,我得到了一个PEM文件。

我现在尝试使用curl()的SSLCERT中的证书文件进行连接,并将cert.key中的私钥作为CURLOPT_SSLKEY提供(这是我在步骤1中获得的)。

失败的原因是:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

我在这个过程中做错了什么?

当我尝试使用从服务接收到的包含私钥的测试证书(自签名证书)时,它起作用。但是,当我使用从CSR生成的证书,然后使用私钥作为密钥时,握手失败会出错。

所以我知道这与openssl/curl不支持v3/TLS等无关,其他人在研究解决方案时发现他们的问题是。

以下是我所运行的:curl -i -v --request POST https://service.com/ --cert clientcert.pem --key private_key.pem --cert-type pem --tlsv1.1 --insecure

* Connected to service.com (1xx.xxx.xxx.xx) port 443 (#0)

* successfully set certificate verify locations:

* CAfile: none

CApath: /etc/ssl/certs

* SSLv3, TLS handshake, Client hello (1):

* SSLv3, TLS handshake, Server hello (2):

* SSLv3, TLS handshake, CERT (11):

* SSLv3, TLS handshake, Server key exchange (12):

* SSLv3, TLS handshake, Request CERT (13):

* SSLv3, TLS handshake, Server finished (14):

* SSLv3, TLS handshake, CERT (11):

* SSLv3, TLS handshake, Client key exchange (16):

* SSLv3, TLS handshake, CERT verify (15):

* SSLv3, TLS change cipher, Client hello (1):

* SSLv3, TLS handshake, Finished (20):

* SSLv3, TLS alert, Server hello (2):

* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

* Closing connection 0

运行以下版本:curl 7.35.0(x86-pc-linux-gnu)libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值