首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自签名证书仅适用于localhost,不适用于127.0.0.1

自签名证书仅适用于localhost,不适用于127.0.0.1
EN

Stack Overflow用户
提问于 2020-02-03 05:45:54
回答 1查看 3.3K关注 0票数 4

我正在尝试生成一个自签名证书,以便我的本地开发环境使用HTTPS,但我遇到了一些问题。这样做的原因是,我想通过我的本地网络(通过我的本地IP 192.168.1.155)在我的手机上测试推送通知,并且通知只能通过安全上下文工作。

它似乎只有在我进入localhost:8080时才能工作,当我导航到127.0.0.1:8080时,它仍然是不安全的。当我导航到Chrome的安全页面时显示:This site is missing a valid, trusted certificate (net::ERR_CERT_COMMON_NAME_INVALID).

下面是我用来生成证书的设置:

req.cnf:

代码语言:javascript
运行
复制
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = 127.0.0.1
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = 127.0.0.1
DNS.3 = 192.168.1.155

openssl req -newkey rsa:2048 -x509 -nodes -keyout key.pem -new -out cert.pem -config req.cnf -sha256 -days 3650

我想也许我的CNalt_names是不正确的,但我不确定如何更改它们才能使站点始终安全地工作(通过本地主机、127.0.0.1或192.168.1.155)

EN

回答 1

Stack Overflow用户

发布于 2020-02-03 06:05:16

在一个出人意料的橡皮鸭调试案例中,我似乎终于在发布后立即解决了这个问题。下面是我所做的:

req.cnf:

代码语言:javascript
运行
复制
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = localhost
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = DNS:localhost,IP:192.168.1.155,IP:127.0.0.1

命令提示符:

代码语言:javascript
运行
复制
openssl req -newkey rsa:2048 -x509 -nodes -keyout key.pem -new -out cert.pem -config req.cnf -sha256 -days 3650

然后导航到Chrome中的页面,将证书(因为它仍然无效)保存为DER文件,然后使用mmc.exe,将其导入到您机器上的可信根证书颁发机构(假设您使用的是Windows)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60030906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档