SSL:无法从对等证书获取通用名称

时间:2014-05-14 13:00:38

标签: curl ssl https

抱歉,我的错误,有两件事必须高亮:

The CA cert Common Name must not same to the server/client side cert
The server/client side cert's common name must be same

我正在尝试将自签名证书用于HTTPS客户端证书。 但是,存在一个问题“SSL:无法从对等证书中获取通用名称”

如您所见,服务器端证书包含公共名称,为什么会出现此问题?

这是卷曲输出:

  
      
  • 关于connect()到127.0.0.1端口443(#0)
  •   
  • 尝试127.0.0.1 ...已连接   输入PEM密码短语:
  •   
  • 成功设置证书验证位置:
  •   
  • CAfile:/home/freeman/dev/git/ca_tools/ca_tools/ssl/CA/secure_ca.crt   CApath:/ etc / ssl / certs
  •   
  • SSLv3,TLS握手,客户端问候(1):
  •   
  • SSLv3,TLS握手,服务器问候(2):
  •   
  • SSLv3,TLS握手,CERT(11):
  •   
  • SSLv3,TLS握手,服务器密钥交换(12):
  •   
  • SSLv3,TLS握手,请求CERT(13):
  •   
  • SSLv3,TLS握手,服务器完成(14):
  •   
  • SSLv3,TLS握手,CERT(11):
  •   
  • SSLv3,TLS握手,客户端密钥交换(16):
  •   
  • SSLv3,TLS握手,CERT验证(15):
  •   
  • SSLv3,TLS更改密码,客户端问候(1):
  •   
  • SSLv3,TLS握手,已完成(20):
  •   
  • SSLv3,TLS更改密码,客户端问候(1):
  •   
  • SSLv3,TLS握手,已完成(20):
  •   
  • 使用ECDHE-RSA-AES256-SHA进行SSL连接
  •   
  • 服务器证书:
  •   
  • 主题:C = CN; ST =北京; L =北京; O =小米
  •   
  • 开始日期:2014-05-14 12:50:20 GMT
  •   
  • 到期日:2024-05-11 12:50:20 GMT
  •   
  • SSL:无法从对等证书中获取通用名称
  •   
  • 关闭连接#0
  •   
  • SSLv3,TLS警报,客户问候(1):
  •   

下面是
  #openssl x509 -in server.crt -text -noout

  

证书:       数据:           版本:1(0x0)           序列号:15298562268347408844(0xd44f6953eb0aa1cc)       签名算法:sha1WithRSAEncryption           发行人:C = CN,ST =北京,L =北京,O = OKK,OU =测试,CN = MyComp           合法性    :

3 个答案:

答案 0 :(得分:4)

在不知道用于生成CSR的数据的情况下,DN的最后一个组件看起来不包含具有目标主机名的CN属性。通常,SSL库客户端仅检查CN属性的第一个组件是否等于目标主机名。我会反转DN顺序并添加一个带有主机名的CN属性。

如果您提供有关如何生成CSR的更多详细信息,我们很乐意帮助您弄清楚如何修复它。

答案 1 :(得分:1)

尝试 CURLOPT_SSL_VERIFYHOST = 0 curl -k

答案 2 :(得分:1)

来自peer的服务器证书的主题详细信息是:

主题:C = CN; ST =北京; L =北京; O =小米

发行人主题详情如下:

C = CN,ST =北京,L =北京,O = OKK,OU =测试,CN = MyComp有效性

显然这两者是不同的(如果应该尝试任何链接),因为这是我从问题中理解的。

在卷曲错误中看到的任何情况下,都缺少common-name属性。 这可能是由于所提供的证书从未包含它。

建议您尝试从浏览器打开证书并验证。