小编evr*_*res的帖子

自签名证书,用于本地 Win10 本机应用程序和 Web 应用程序之间的通信

背景:我有一个可通过 Windows 10 机器上的 Chrome 访问的网络应用程序。

我还在设备上安装了本机 Win10 应用程序。Web 应用程序通过在 IISExpress 中运行在机器上的本地 Web 服务将数据发送到 Win10 应用程序。

为了允许端口 44300 上的 HTTPS 通信,我通过 PowerShell 创建了一个自签名证书: New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddMonths(60 )

然后将其导入到“本地计算机\受信任的根证书\证书”

从 web 应用程序中,我向 win10 应用程序发送一个命令,如下所示: https://localhost:44300/CMTService.svc/JumpToAssignment?Param=Key=418584577

win10 应用程序正在轮询这些请求并接收消息。

问题: 不同版本的 Chrome 在接受自签名证书时表现不同。例如,版本 62、64 和 75 都接受证书并允许与 Web 服务通信。但是其他版本的 Chrome(如 76 和 78)会阻止通信。Chrome DevTools 中的安全选项卡将https://localhost:44300 显示为“未知/已取消”,我的请求失败并显示ERR_SSL_CLIENT_AUTH_CERT_NEEDED. 而在 Chrome 的工作版本中,我的 URL 显示在“安全来源”下。我唯一改变的是 Chrome 版本以获得这些不同的结果。

我尝试启用 Chrome 设置以允许本地主机的无效证书(chrome://flags/#allow-insecure-localhost)。这暂时有效,但在关闭并重新打开 chrome 后,我的请求再次开始失败,错误代码相同。

如果我将失败的 URL 之一粘贴到新的 Chrome 选项卡中,突然与我的网络应用程序中的本机应用程序的通信恢复正常。但它仅适用于该会话 …

ssl google-chrome self-signed windows-10

6
推荐指数
1
解决办法
615
查看次数

标签 统计

google-chrome ×1

self-signed ×1

ssl ×1

windows-10 ×1