我通过运行以下链接中的脚本使用 ssl 生成了证书:https://gist.github.com/bjanderson/075fadfccdd12623ab935e57eff58eb4
脚本运行良好,我收到了所有预期的文件。我已将 ca.crt 导入到受信任的根证书颁发机构下的 chrome,但 chrome 仍然不信任它。
我收到以下错误:
Certificate - Subject Alternative Name missing
The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address.
Certificate - missing
This site is missing a valid, trusted certificate (net::ERR_CERT_AUTHORITY_INVALID).
我该如何解决这两个问题并让我的 chrome 信任我的自签名证书?
答案1
Certificate - Subject Alternative Name missing The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address.
这个意思:
- 这中国不匹配服务器名称
- 还有X509v3 主体备用名称场也不要。
Certificate - missing This site is missing a valid, trusted certificate (net::ERR_CERT_AUTHORITY_INVALID).
这个意思:
无法信任服务器,因为未提供有效的证书...好的,当第一个错误解决时,这个问题就解决了!
考虑一下您连接服务器的方式(IP 地址或 DNS 名称):
https://228.929.123.46/
或者
https://mydomain.example.com/
https://127.0.0.1/
https://$HOSTNAME/
你可以使用以下方式创建证书
CN=228.929.123.46
并添加DNS.1=mydomain.example.com DNS.2=$HOSTNAME IP.1=127.0.0.1 DNS.3=other.domain.org DNS.
...CN=127.0.0.1
并添加DNS.1=mydomain.example.com DNS.2=$HOSTNAME IP.1=228.929.123.46 DNS.3=other.domain.org DNS.
...
但是如果在互联网上,你最好使用不完整的主机名,localnet(192.168.xx)和localip(127.xxx)!
CN=228.929.123.46
并添加DNS.1=mydomain.example.com DNS.2=other.domain.org DNS.
...
并且仅使用 DNS 地址或公共 IP 即可访问您的服务器!
看看那儿,
- 主题备用名称在 wikipedia.org
然后看看如何做到这一点...
- 直接在命令行上向 OpenSSL 提供 subjectAltName在 security.stackexchange.com
- 将主体备用名称 (SAN) 添加到数字证书在documentation.progress.com
- 在 OSX 上生成带有主题备用名称的 SSL 证书在 github.com/croxton