fetch()在Firefox中使用SSL客户端身份验证失败

fetch() fails in Firefox with SSL client authentication

本文关键字:SSL 客户端 身份验证 失败 Firefox fetch      更新时间:2023-09-26

我有一个使用SSL客户端身份验证的web服务器。该服务器上的网页使用fetch() API发出同源GET请求。

在Chrome中,客户端证书在SSL握手中发送,如预期的那样,导致200"ok"响应。在Firefox中,不发送证书,导致403 "forbidden"响应。

在Firefox中,如果我从使用fetch()切换到XMLHttpRequest,它可以工作。如果我直接从Firefox的URL栏加载相同的URL,它可以工作。这个问题似乎仅限于Firefox的fetch()

有人见过这个吗?是否有任何方法可以使fetch()在Firefox中与SSL客户端身份验证很好地配合,或者我是否需要在任何地方切换到使用XMLHttpRequest ?谢谢。

我刚刚解决了自己的问题。这就是失败的地方:

fetch(someUrl)

fetch(someUrl, { credentials: 'include' })

显然Chrome (v54)和Firefox (v45)在这里有不同的行为