Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Chrome 58自签名证书_C#_Google Chrome_Ssl_Signalr_Self Signed - Fatal编程技术网

C# Chrome 58自签名证书

C# Chrome 58自签名证书,c#,google-chrome,ssl,signalr,self-signed,C#,Google Chrome,Ssl,Signalr,Self Signed,我现在已经走到了尽头,看不到解决办法。只是一些背景知识,我有一个.net web应用程序,还有一个自托管的SignalR端应用程序,客户可以下载该应用程序来帮助我的网站与他们的桌面交互。当客户端安装此端应用程序时,它会获取自签名证书并安装到受信任的根证书颁发机构和个人证书存储区 我的站点使用SSL,并带有由权威机构签署的有效证书,因此它通过https运行,客户端在URL栏中看到一个漂亮的绿色锁,使应用程序中的每个人都感到安全。为了让signarclient在JS中工作,我必须使用https()调

我现在已经走到了尽头,看不到解决办法。只是一些背景知识,我有一个.net web应用程序,还有一个自托管的SignalR端应用程序,客户可以下载该应用程序来帮助我的网站与他们的桌面交互。当客户端安装此端应用程序时,它会获取自签名证书并安装到受信任的根证书颁发机构和个人证书存储区

我的站点使用SSL,并带有由权威机构签署的有效证书,因此它通过https运行,客户端在URL栏中看到一个漂亮的绿色锁,使应用程序中的每个人都感到安全。为了让signarclient在JS中工作,我必须使用https()调用。现在,为了解决这个问题,我创建了一个自签名证书并绑定到我用于SignalR(8080)的端口。这在很长一段时间内运行良好,但从Chrome58开始,自签名证书需要SAN扩展,这很好。我使用SAN扩展创建了一个新的自签名证书,但现在出现了一条全新的错误消息:

如果我忽略这一点并继续,它会破坏我的网站SSL,客户会在URL栏中看到一个红色的“x”,这不会让他们在网站上感到舒适。还可以得到“您的连接不是私有的”警告。实际上,无效的不是我的站点,而是绑定到端口的SSL证书

有没有办法用自签名证书解决这个问题? 我可以将我的有效证书绑定到客户端端口并将其用于Signal吗


我不介意花钱购买有效的证书,但问题是,我甚至可以为localhost申请证书吗

正如我们在上面的评论中所讨论的,您使用CA的有效服务器证书是不可行的,因为将其分发到任何地方(给您的用户)可能会带来严重的安全风险

因此,您必须使用自签名证书,并适应其所有限制

  • 现在必须使用SHA-2哈希生成证书
  • 证书必须具有正确的SAN扩展
  • 必须将证书添加到受信任的根权限存储中
随着Chrome和其他web浏览器的快速变化,新的限制可能很快就会增加


您可能应该为用户提供一个PowerShell脚本来自动化这些步骤。这可以最大限度地减少对用户体验的影响。

@LexLi以及如果解析为127.0.0.1,Lets Encrypt将如何为该域颁发证书?@Evk请注意,让我们加密验证IP地址的有效性。那么就没有使用“有效”证书的简单方法了。即使这家伙想付钱,到处发送有效证书对他/她来说也是一种攻击。@LexLi我很感激你提供的教育,如果你能在回答中加入这一点,我会给你学分……这需要我添加一个url预订,但一点问题都没有,谢谢家伙