我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
我已经为localhostCN创建了一个自签名的SSL证书。正如预期的那样,Firefox在最初抱怨后接受了这个证书。然而,Chrome和IE拒绝接受它,即使在将证书添加到Trusted Roots下的系统证书存储之后。尽管当我在Chrome的HTTPS弹出窗口中单击“查看证书信息”时,证书被列为正确安装,但它仍然坚称证书不可信。
我该怎么做才能让Chrome接受证书并停止抱怨?
当前回答
2021 6月-Windows 10-Chrome v91(SIMPLE)
按照selfsignedcertificate.com上的证书生成说明进行操作:
示例域名:mydomain.local,请将其替换为您的域名。
要生成密钥,请执行以下操作:openssl genrsa-out mydomain.local.key 2048创建仅包含以下内容的配置文件mydomain.local.conf:[要求]区分名称=请求[桑]subjectAltName=DNS:mydomain.local注意:在subjectAltName中,您可以定义更多域(可选),如:subjectAltName=DNS:mydomain.local,DNS:*.mydomain.local,DNS:其他域.local,IP:192.168.1.10创建证书:openssl req-new-x509-key mydomain.local.key-out mydomain.local.crt-days 3650-subj/CN=mydomain.local-extensions SAN-config mydomain.local.conf将证书添加到受信任的根证书颁发机构右键单击mydomain.local.crt文件从上下文菜单中选择安装证书。在弹出窗口中选择本地机器。选择“将所有证书放置在以下存储中”。单击浏览。选择受信任的根证书颁发机构。单击“确定”、“下一步”、“完成”。重新启动Chrome。
其他回答
对于使用NX的带有Angular Micro前端的mac
步骤1:创建自签名根证书
openssl req -x509 -nodes -new -sha256 -days 390 -newkey rsa:2048 -keyout "RootCA.key" -out "RootCA.pem" -subj "/C=de/CN=localhost.local"
openssl x509 -outform pem -in "RootCA.pem" -out "RootCA.crt"
步骤2:定义应包含在证书中的域和子域
为此,只需创建一个名为vhosts_domains.ext的文本文件并插入以下内容:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = *.mixable.blog.local
DNS.3 = mixable.blog.local
此示例包括域mixeble.blog.local的本地开发环境的子域以及所有子域,如www.mixable.blog.loal或apps.mixeble.blog.local。
步骤3:创建证书
openssl req -new -nodes -newkey rsa:2048 -keyout localhost.key -out localhost.csr -subj "/C=de/ST=State/L=City/O=Organization/CN=localhost.local"
openssl x509 -req -sha256 -days 1024 -in localhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile vhosts_domains.ext -out localhost.crt
步骤4:使证书可用于Angular应用程序
nx serve host --open --devRemotes=<app names> --ssl --ssl-key <folder_location>/localhost.key --ssl-cert <folder_location>/localhost.crt
步骤5:将证书从导入添加到macOS密钥链
在chrome上,如果您仍然获得无效证书,则下载证书并添加到密钥链,并使所有证书都可信。
2021 6月-Windows 10-Chrome v91(SIMPLE)
按照selfsignedcertificate.com上的证书生成说明进行操作:
示例域名:mydomain.local,请将其替换为您的域名。
要生成密钥,请执行以下操作:openssl genrsa-out mydomain.local.key 2048创建仅包含以下内容的配置文件mydomain.local.conf:[要求]区分名称=请求[桑]subjectAltName=DNS:mydomain.local注意:在subjectAltName中,您可以定义更多域(可选),如:subjectAltName=DNS:mydomain.local,DNS:*.mydomain.local,DNS:其他域.local,IP:192.168.1.10创建证书:openssl req-new-x509-key mydomain.local.key-out mydomain.local.crt-days 3650-subj/CN=mydomain.local-extensions SAN-config mydomain.local.conf将证书添加到受信任的根证书颁发机构右键单击mydomain.local.crt文件从上下文菜单中选择安装证书。在弹出窗口中选择本地机器。选择“将所有证书放置在以下存储中”。单击浏览。选择受信任的根证书颁发机构。单击“确定”、“下一步”、“完成”。重新启动Chrome。
修复Windows上的Chrome。
首先,您需要导出证书。
在浏览器中找到url。url的“https”段将为用红线划掉,左侧将有一个锁定符号。右键单击划掉的“https”段。您将看到一个包含各种信息的信息窗口单击“详细信息”。导出证书,按照说明接受默认设置。
要导入
转到Chrome设置单击“高级设置”在HTTPS/SSL下单击“管理证书”转到“受信任的根证书颁发机构”单击“导入”将出现一个弹出窗口,询问您是否要安装此证书。单击“是”。
正如有人指出的,你需要重启所有的Chrome,而不仅仅是浏览器窗口。最快的方法是打开一个选项卡。。。
chrome://restart
在受信任的根CA存储中添加CA证书。转到chrome并启用此标志!
chrome://flags/#allow-不安全的本地主机
最后,只需使用*.me域或任何有效的域,如*.com和*.net,并将它们保存在主机文件中。对于我的本地设备,我使用*.me或*.com,主机文件维护如下:
添加到主机。C: /windows/system32/drivers/etc/hosts127.0.0.1下一页
注意:如果在执行此操作时浏览器已打开,则错误将继续显示。因此,请关闭浏览器并重新启动。更好的办法是,隐姓埋名,或者立即开始新的疗程。