【问题标题】:Execute an AJAX method against a secure URL with a non-trusted certificate使用不受信任的证书对安全 URL 执行 AJAX 方法
【发布时间】:2012-12-17 14:41:10
【问题描述】:

我有一个站点,它使 AJAX JSONP 调用安全 (SSL) 网络服务器。如果我使用不安全的 (HTTP) Web 服务器,一切正常,但是当我更改为 SSL 版本时,调用永远不会返回。我已经检查了提琴手,错误如下:

由于 RemoteCertificateChainErrors,远程服务器 (192.168.150.85) 提供了未验证的证书。

这意味着缺少一些中间证书,但我不知道是哪一个。无论如何,我需要处理某些安装具有无效证书凭据的情况。

众所周知,如果您尝试对具有不受信任或过期证书的安全 URL 执行 AJAX 方法,浏览器将警告您的用户,无论您尝试如何或尝试做什么。在浏览器中你可以接受这些风险,即使在 C# 中你也可以实现一个回调来接受这些风险。但我不知道如何在 Javascript/JQuery 中做到这一点。

有人知道如何处理这种情况吗?

谢谢!

【问题讨论】:

  • 如果您使用浏览器访问 SSL 站点会发生什么?
  • 我的意思是您绝对应该理顺此服务器的证书问题。这对你来说可能吗?如果您可以访问服务器,则实际上只是将证书放在正确的 apache 目录中的问题。
  • 嗨!如果我使用浏览器,它就不能正常工作,因为问题是 jquery.ajax() 方法正在等待确认。如果我使用提琴手,在错误消息之后请求有效,但在浏览器下,不显示错误消息并且 jquery.ajax 等待确认......直到日子结束:)
  • @thatnotidiotguy:你说得对,但我没有使用 apache,而是使用 c#(httplistener)自托管。证书在服务器上的正确位置,但由于它们不是官方的,因此无法验证,并且浏览器/ajax/fiddler 将始终显示此错误消息

标签: javascript jquery html ssl https


【解决方案1】:

这似乎是不可能的/不推荐的。这确实不是一个好主意。我们现在使用的是非常便宜的真实证书(甚至还有免费的)并且在我们的测试环境中更易于管理,我们有多种移动设备、客户端类型等等。

【讨论】:

    猜你喜欢
    • 2011-08-23
    • 2015-01-28
    • 2022-12-23
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    相关资源
    最近更新 更多