- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们的 Web 应用程序有很多 ajax 调用,而且都是 https 请求(我们的 IT 团队要求),是的,我们已经打开 header 以允许跨域。但问题是我们有自己的自定义证书,内部用于我们所有的应用程序,所以基本上我在调用 ajax 时出错:
Failed to load resource: net::ERR_INSECURE_RESPONSE
如果我在浏览器中打开 URL 并接受证书,ajax 调用就可以正常工作。所以我的问题是,有没有办法通过 Javascript 来处理这个问题?或者添加受信任的证书会解决这个问题吗?此外,即使在我们添加受信任的证书后,我还会再次面临 ajax 中的任何问题吗?
注意:我们正在 chrome 浏览器中测试所有这些
最佳答案
是的,将证书添加到用户的受信任证书列表中可以解决您的问题。只要您的服务器正确设置为服务器 CORS(看起来是这样,基于您接受证书后的成功),证书是您唯一的问题。
HTTPS 提供两个安全优势:
bob.com
交谈时,她知道这确实是她所知道的服务器作为 bob.com
而不是冒名顶替者)第一个好处是自动的。它由加密协议(protocol)保证,不能被剥离(除非对安全漏洞进行非常复杂的攻击,通常可以很快修复)。
第二个好处并不是严格意义上的技术好处:它是一个信任的问题。服务器使用证书将他们的公钥(授予第一个安全组件)与他们自己的身份联系起来。这些公钥证书由用户信任的机构签署,称为证书颁发机构 (CA)。
当您尝试连接到 bob.com
时,该站点会为您提供一个公钥以执行安全通信。你怀疑地说,“当然,这个公钥可以让我安全地与你交谈,但我怎么知道你是真的 bob.com
?”然后服务器会为您提供一个 CA 签名的证书,上面写着:
We, the VeriSign certificate authority, who are widely trusted to be thorough in our investigations, hereby attest that the following public key really does truly belong to
bob.com
:Public key:
ZGdlZGhydGhyaHJ0eWp5cmo...
Verifiably signed,
VeriSign
有许多主要的证书颁发机构(操作系统和浏览器)广泛信任它们颁发签名证书,当且仅当它们可靠地验证公钥确实属于某个域名时。因为您的操作系统已经信任这些签名,所以我们可以在没有任何确认的情况下使用它们。
当您使用自签名证书时,没有可信的 CA 验证您的证书确实属于您的域名。任何人都可以出示这样的文件:
Hey, man, this is 100% definitely the public key for
bob.com
:Public key:
WGdoZmpodHlqa2p1aXl1eWk...
Just trust us, the guys who wrote this note, okay? We're DEFINITELY sure that's the key. The guys who wrote this note are the guys who run
bob.com
. We promise.Signed,
The guys who wrote this note
这上面没有受信任的签名。用户必须决定他们是否愿意接受证书证明公钥确实属于 bob.com
。
做出有意义的决定是一个困难的过程——您需要检查证书并在某处找到公钥的预先存在的可信记录(或联系站点管理员或服务台代表)。实际上,您需要让您对证书的信任来自某处,因为它不是来自主要证书颁发机构的可信签名。
允许 JavaScript 自动做出这种信任决定是没有意义的。重点是用户必须决定证书是否可信,然后对系统的证书存储进行适当的修改。
这可以假设是针对 Ajax 请求完成的,但它不会很漂亮。您需要向用户显示一个浏览器 UI 屏幕,询问用户是否要信任脚本尝试访问的任何域的自签名证书。除了非常破坏浏览体验之外,这可能会造成危险的困惑:如果我在 example.com
上,突然(由于我不知道的脚本的操作)我我被要求信任 bob.com
的证书,我可能会纯粹基于我对 example.com
的信任而接受它。
将证书添加到您系统的受信任证书列表中,或者让它由您的系统已经信任的 CA 签名。
关于javascript - Javascript 中的 ERR_INSECURE_RESPONSE 处理提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857340/
我的 AngularJS 应用程序使用 $http.get()带有 https 网址。如果服务器使用自签名证书,Chrome 将拒绝请求并将错误 ERR_INSECURE_RESPONSE 记录到控制
当我尝试使用 jquery 发出 ajax 请求时: https://localhost:8443/uri 我收到此错误: net::ERR_INSECURE_RESPONSE 我正在使用自签名证书,
我在Electron中使用XHR遇到了一些麻烦。在我的MacOS上,它工作正常,但在另一个MacOS上进行了测试,提取失败并显示: net::ERR_INSECURE_RESPONSE 经过Windo
当对 https url 进行 ajax 调用时,我收到 net::ERR_INSECURE_RESPONSE 。当我在浏览器中打开该 https 网址并接受证书时,我没有收到该错误。但我不想在浏览器
有没有办法欺骗服务器,这样我就不会收到此错误: 内容被阻止,因为它没有由有效的安全证书签名。 我正在将 html 网站的 iframe 拉入另一个网站,但我不断在该问题的标题中收到控制台(chrome
我需要帮助来了解 Chrome 的行为是正常的还是我的错误。我正在使用自签名证书和子域。 来自 https://preproduser.svtools.tp.XXX.it/#!/login/对另一个子
我已经在 heroku 上部署了一个应用程序,但是 css 不工作。 我正在使用 w3.css 框架,并且我是这样导入它的: 我得到的错误是: GET https://www.w3schools.c
所以我是两个站点的开发人员:domainA.com 和 domainB.com。 domainA.com 正在使用以下 javascript 链接从 domainB.com 中提取电子邮件提要: 这
我正在尝试通过 https 连接到本地主机。由于在生产中它将被替换为具有有效 SSL 的正确 IP,但在本地主机上它会在 Electron 上抛出错误。 如何通过抑制 SSL 检查来避免错误,仅在用于
我将它们放在我脑海中的链接上。 获取 https://fr.s.us/js/jquery-ui.css net::ERR_INSECURE_RESPONSE 获取 https://fr.s.us/js
我们的 Web 应用程序有很多 ajax 调用,而且都是 https 请求(我们的 IT 团队要求),是的,我们已经打开 header 以允许跨域。但问题是我们有自己的自定义证书,内部用于我们所有的应
无法连接到 websocket 服务器.. 我使用与 nginx 完全相同的 private.key 和 public.crt 证书是自签名的,但可以通过 nginx 通过 HTTPS 与网站的其余部
从 API 获取一些数据时,我在 Chrome 控制台中收到错误 net::ERR_INSECURE_RESPONSE 此错误通常是由于未签名的证书造成的;但是,这不是问题,因为我有有效且签名的证书。
我正在使用 sipml5 注册 sip 端点,并使用 sipml5 作为我的客户端,使用 FreeSwitch 作为我的 SIP 服务器。我曾经能够注册我的 sip 端点并建立连接,但最近我在我的 c
当我的 Angular 脚本尝试访问我的 WCFservice 方法时,我收到错误 net::ERR_INSECURE_RESPONSE。为了使其正常工作,每个访问该网站的浏览器都需要找到在 ajax
我有一个通过 HTTPS 提供服务的网站。在此站点的特定页面上,我从另一个域调用脚本。 但是每次我加载页面时,脚本都无法加载。相反,我在我的控制台中看到了这条错误消息: Failed to load
我正在尝试使用 SSL 实现我的网站。我使用 IIS 创建了一个自签名证书。但是当使用 https 调用该站点时,我不断收到 ERR_INSECURE_RESPONSE 并且似乎永远无法到达服务器。我
我需要将我的 angular $resources 连接到一个自签名的 https web api。如果我尝试直接这样做,我会收到诸如 OPTIONS https://address/api/auth
我正在尝试从 jquery 到 node.js 进程进行 https CORS ajax 调用。然而,每当调用时,chrome 都会在控制台中提示 OPTIONS https://localhost/
我正在对我的 URL 执行简单的 GET 请求,但收到错误“ERR_INSECURE_RESPONSE”。这很好,因为证书是自签名的。但我有两个问题: 有没有办法在扩展中克服这个问题?像在请求中设置标
我是一名优秀的程序员,十分优秀!