2017-10-10 87 views
0

在Chrome 60中,他们添加了功能,该功能为非TLS连接禁用crypto.subtle。出于安全原因,我们的产品需要运行本地服务器并将一些安全的远程连接转发到localhost。因为localhost在技术上并不是一个命名的域名,所以我们不能使用TLS - 在Chrome(以及基于铬的浏览器,如Opera)中使crypto.subtle无法使用,并且迫使我们使用不太安全的填充程序,如asmCrypto.js。有没有什么办法可以让Chrome通过头文件启用crypto.subtle?有什么方法可以在我们可以告诉用户有关(最坏的情况下)的设置中禁用新的功能如何在Chrome中为不安全的起源启用crypto.subtle?

回答

1

在铬60,它们增加了一个功能,禁用crypto.subtle用于非TLS连接

不完全是,crypto.subtle是因为第一支持版本非安全来源禁用(铬32?)

localhost被认为是一个安全的起源https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

“安全的起源”是相匹配的乐起源说AST以下(方案,主机,端口)模式中的一个:

  • (HTTPS,*,*)

  • (WSS,*,*)

  • (*,本地主机, *)

  • (* 127/8,*)

  • (*,:: 1/128,*)

  • (文件,*, - )

  • (铬扩展,*, - )

所以,你应该能够在http://localhost使用网络Cryptographi API。

您是否在为您的网站使用HTTPS?这可能是因为您遇到与混合HTTPS和HTTP相关的问题。 Chrome会阻止HTTP连接到本地主机。然后,你可以生成一个127.0.0.1自签名证书,并使用HTTPS启动您的本地服务器(类似于@SLaks回答,但你不会需要一个hosts条目)

+0

事实上,我们甚至不能使用localhost某些其他原因(不记得为什么),但127.0.0.1修复的问题,是相同的(?)为localhost,这样制定。 –

0

您应该创建一个CNAME或hosts条目,指向一个有效的域名为127.0.0.1,然后获得该域的(可能是自签名的)证书。

相关问题