【问题标题】:Using jQuery's ajax() function with an SSL client certificate将 jQuery 的 ajax() 函数与 SSL 客户端证书一起使用
【发布时间】:2013-01-12 03:07:45
【问题描述】:

我想使用 jQuery 的 ajax() 函数对 REST 服务进行 XHR 调用。基本上,这工作正常,但是 REST 服务只能通过 https 访问,并且需要客户端使用客户端证书进行身份验证。

如何使用 jQuery 的 ajax() 函数发送客户端证书?

【问题讨论】:

标签: jquery ajax rest authentication ssl


【解决方案1】:

客户端证书身份验证 (a) 仅在服务器请求时执行,并且 (b) 由浏览器透明地完成,就 HTTP 和 JavaScript 层而言。

当服务器请求客户端证书时(可能需要在 HTTP 请求后重新协商),浏览器应提供一个弹出窗口以选择证书(取决于浏览器,不受任何 JavaScript 或 HTML 控制) 或根据其设置自动选择一个。

因此,jQuery 的 ajax() 函数不能对客户端证书做任何事情。

在我的脑海中,我不确定浏览器是否会触发客户端证书选择弹出窗口,如果它仅在 AJAX 调用期间首先出现(这可能取决于浏览器)。但是,如果已经选择了客户端证书(或者如果选择是自动的),浏览器将使用它进行身份验证,就像处理任何其他正常请求一样。

【讨论】:

  • 但是,如果已经选择了客户端证书(或者如果选择是自动的),浏览器将使用它进行身份验证,就像任何其他正常请求一样。 这就是我所说的 在 ajax 调用中不可能进行 ssl 身份验证
  • @Simon,嗯,好吧,我说的并不意味着无法进行身份验证。它确实发生了,选择只是不受任何 JavaScript 函数的控制。
  • 选择不受任何 JavaScript 函数的控制。 完全正确。
【解决方案2】:

如果请求源和目标在同一个域中并且使用 https:Securing AJAX & SSL,则可以进行 ssl ajax 调用。但是您不能在 ajax 调用中进行 ssl 身份验证。

【讨论】:

  • "但是您不能在 ajax 调用中进行 ssl 身份验证。"。为什么不?你说的是哪种身份验证?
猜你喜欢
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 2010-12-24
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多