我正在创建一个本地应用程序,它在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。
答案 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地址。