如何为 Chrome 中的不安全来源启用 crypto.subtle?

Sam*_*aus 8 google-chrome chromium webcrypto-api

在Chrome 60,他们增加了一个功能,禁用crypto.subtle非TLS连接。localhost出于安全原因,我们的产品需要运行本地服务器并转发一些安全的远程连接。因为localhost技术上不是命名域,所以我们不能使用 TLS——有效地使crypto.subtleChrome(和基于铬的浏览器,如 Opera)无法使用,并迫使我们使用安全性较低的 shim,如asmCrypto.js。有没有办法告诉 Chromecrypto.subtle通过标题启用?有没有办法在设置中禁用我们可以告诉用户的新功能(最坏的情况)?

ped*_*ofb 12

在 Chrome 60 中,他们添加了一项功能,可以为非 TLS 连接禁用 crypto.subtle

不完全crypto.subtle是,自第一个支持的版本(chrome 32?)

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

“安全来源”是至少匹配以下(方案、主机、端口)模式之一的来源:

  • (https, *, *)

  • (wss, *, *)

  • (*, 本地主机, *)

  • (*, 127/8, *)

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

  • (文件, *, -)

  • (镀铬扩展,*,—)

因此,您应该能够在 http://localhost.

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