我正在开发一个firefox插件,我需要进行https调用。我获得了 SSL证书信息(序列号,SHA1指纹和MD5指纹)。当我尝试使用main.js中的Request模块时,我的状态总是 0 。我尝试使用其他http请求的请求模块,这些请求不受保护,并且工作正常。
所以我假设0状态与SSL证书有关。
虽然我尝试使用 Dev-HTTP-Client 谷歌浏览器插件模拟相同的请求,但正常,我可以从https服务器获得正确的响应。< / p>
我不确定,但我认为我需要使用chrome模块Cc [“@ mozilla.org/security / ...来完成这项工作。
如果您可以指导我从插件内部设置SSL证书信息的正确步骤
答案 0 :(得分:0)
不幸的是,没有直接的方法来手动验证证书并继续请求。相反,您需要自己添加错误覆盖并重试。
XMLHttpRequest
定期nsIXMLHttpRequest
。 SO和Google上有足够的代码和示例描述了如何执行此操作。 requests
模块不会这样做,因为它隐藏了一些必要的细节。nsIBadCertListener2
并将其填入req.channel.notificationCallbacks
(可能希望保留原始回调)。.notifyCertProblem()
被调用,则表示证书未经验证。现在,您可以使用种子指纹(和序列号)验证证书。大多数内容都在Boot2Gecko的ErrorPage.jsm中得到了很好的展示(仍适用于所有其他mozilla供电的产品)。这是一个交叉参考,所以点击;)
当然,您需要使用chrome
模块。
我应该提一下,我是故意不提供完整的复制意大利面代码解决方案,只提供所有必需的指针,因为我认为一个人应该有足够的能力去工作我提供的,或者不首先触及安全子系统。