抱歉,我的错误,有两件事必须高亮:
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 合法性 :
答案 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属性。 这可能是由于所提供的证书从未包含它。
建议您尝试从浏览器打开证书并验证。