如何删除关于重复问题的错误横幅?
这个问题不是为什么requestjs拒绝使用Firefox的自签名SSL证书?的翻版。虽然这个问题的答案可能会导致类似的配置文件,但这个问题并不是在subjectAltName中使用subjectAltName。这是一个关键点,因为我们可以很容易找到的所有例子都是使用DNS:,它不适用于IP地址。
这个问题不是在证书名称中使用IP地址的异常的翻版。虽然这个问题的答案可能会导致类似的配置文件,但这个问题完全没有subjectAltName。
出于同样的原因,这个问题也不是在服务器证书中使用ip地址作为公共名称在Android中不起作用吗?的重复。
回到实际问题
我想编写一个同时响应localhost和127.0.0.1的SSL服务器。不同的网站说,这可以通过subjectAltName实现。因此,我使用以下openssl配置文件创建了一个服务器证书:
distinguished_name = dn
x509_extensions = v3_ca
[req]
prompt = no
[dn]
0.CN = localhost
1.CN = 127.0.0.1
[v3_ca]
subjectAltName = DNS:localhost,DNS:127.0.0.1服务器正在发送subjectAltName。例如,由s_client验证
% echo | openssl s_client -showcerts -CAfile keys/cert.pem -connect localhost:8443 | grep -i -A 2 certificate
depth=0 CN = localhost, CN = 127.0.0.1
verify return:1
DONE
Certificate chain
0 s:/CN=localhost/CN=127.0.0.1
i:/CN=localhost/CN=127.0.0.1
-----BEGIN CERTIFICATE-----
MIIC9jCCAd6gAwIBAgIJANlipKdvxVlUMA0GCSqGSIb3DQEBCwUAMCgxEjAQBgNV
BAMMCWxvY2FsaG9zdDESMBAGA1UEAwwJMTI3LjAuMC4xMB4XDTE5MDcyMzAxMjcw
--
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=localhost/CN=127.0.0.1
issuer=/CN=localhost/CN=127.0.0.1
--
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits我们还可以使用一个简单的Python客户机来验证它,它报告:
Cipher is ECDHE-RSA-AES256-GCM-SHA384, SSL protocol is TLSv1.2, bits=256
Peer cert is {'subjectAltName': (('DNS', 'localhost'), ('DNS', '127.0.0.1')), 'notBefore': u'Jul 23 01:27:02 2019 GMT', 'serialNumber': u'D962A4A76FC55954', 'notAfter': 'Jul 22 01:27:02 2020 GMT', 'version': 3L, 'subject': ((('commonName', u'localhost'),), (('commonName', u'127.0.0.1'),)), 'issuer': ((('commonName', u'localhost'),), (('commonName', u'127.0.0.1'),))}
Hello from SSL server!不幸的是,curl只识别名称:
% curl --cacert keys/cert.pem https://localhost:8443
Hello from SSL server!
% curl --cacert keys/cert.pem https://127.0.0.1:8443
curl: (51) SSL: no alternative certificate subject name matches target host name '127.0.0.1'
%我们如何使curl (和其他程序)注意到subjectAltName、整个subjectAltName,以及除了subjectAltName以外的其他任何东西
更新
也许它适用于这个:
distinguished_name = dn
x509_extensions = v3_ca
[req]
prompt = no
[dn]
CN = IGNORED
[v3_ca]
subjectAltName = DNS:localhost,IP:127.0.0.1这些东西,好像,有什么记录吗?
发布于 2019-10-14 20:37:18
https://stackoverflow.com/questions/57155618
复制相似问题