使用jQuery的ajax()函数和SSL客户端证书

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

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

如果请求源和目标位于同一域并使用https: 保护AJAX和SSL,则可以进行ssl ajax调用。 但是你不能在你的ajax调用中进行ssl身份validation。

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

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

因此,jQuery的ajax()函数无法对客户端证书进行任何操作。

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