localhost / 127.0.0.1的证书SSL_ERROR_BAD_CERT_DOMAIN

时间:2017-12-17 17:06:31

标签: security ssl certificate pkix

我正在创建一个本地应用程序,它在localhost:8080地址中启动web服务器。我正在尝试为它创建一个证书,以便我可以使用HTTPS访问它,但我很难做到这一点。

首先,我创建了自己的CA,然后使用localhost:8080通用名创建了证书。然后我将我的CA添加到计算机上的受信任机构(我顺便使用Windows 10),但是当我打开我的网站时,我使用Firefox和Chrome收到了BAD_CERT_DOMAIN错误。

我还尝试使用127.0.0.1:8080创建另一个证书作为通用名称,但它也不起作用。

我做错了什么?这些浏览器是否总是拒绝使用localhost作为CN?

的证书

更新

我创建了一个这样的配置文件:

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
stateOrProvinceName         = State or Province Name (full name)
localityName               = Locality Name (eg, city)
organizationName           = Organization Name (eg, company)
commonName                 = Common Name (e.g. server FQDN or YOUR name)

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = localhost
DNS.2 = localhost:8080
DNS.3 = localhost:12125
DNS.4 = localhost:12126
DNS.5 = 127.0.0.1:8080
DNS.6 = 127.0.0.1:12125
DNS.7 = 127.0.0.1:12126
DNS.8 = 127.0.0.1
IP.1 = 127.0.0.1

这些是我用来生成证书的命令:

签名请求:openssl req -out myrequest.csr -newkey rsa:2048 -nodes -keyout mykey.key -config myconfig.conf

当我运行此命令时,CN = localhost 127.0.0.1

使用我的CA签名:openssl x509 -req -in myrequest.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out mycertificate.crt -days 36500 -sha256

然而,即使我告诉他们相信我自己的CA,我仍然会获得Firefox和Google Chrome的BAD_CERT_DOMAIN。

1 个答案:

答案 0 :(得分:1)

我已经按照@ jww的建议,我重新编写了我的配置文件:

openssl req -out myrequest.csr -newkey rsa:2048 -nodes -keyout mykey.key -config myconfig.conf

然后我用这些命令生成我的证书。

签名请求:openssl x509 -req -in myrequest.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out mycertificate.crt -days 36500 -sha256

使用我的CA签名:{ "/api": { "target": "http://localhost:8080/NG-PROJETS", "secure": false, "pathRewrite": { "^/api": "" } } }

所以问题实际上是我将端口号添加到我的证书签名请求的IP和DNS地址。