gpt4 book ai didi

ssl - 使用 firefox 插件访问 https 站点

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:38 25 4
gpt4 key购买 nike

我正在使用自签名 ssl 证书来设置 https 站点并使用请求包访问该站点上的内容。然而,程序似乎卡住了,它没有打印网站的内容。有什么办法可以克服这个问题。

最佳答案

警告:这应该只用于调试。自动为错误的 SSL 证书添加覆盖会危及整个连接 - 如果您这样做,那么您可以首先跳过使用 SSL。当您为其他人发布此扩展程序时,您应该使用有效的证书。


您可能想要手动添加证书覆盖。那是你会使用的东西 nsICertOverrideService.rememberValidityOverride()对于(chrome authority required)。唯一的问题是获取要为其添加覆盖的证书。但试图联系服务器并调用 nsIRecentBadCertsService.getRecentBadCert()然后应该做。像这样:

var Request = require("request").Request;
var host = "example.com";
var port = "443";
Request({
url: "https://" + host + ":" + port + "/foo",
onComplete: function(response)
{
var status = null;
try
{
status = response.status;
} catch(e) {}

if (!status)
{
// There was a connection error, probably a bad certificate
var {Cc, Ci} = require("chrome");

var badCerts = Cc["@mozilla.org/security/recentbadcerts;1"]
.getService(Ci.nsIRecentBadCertsService);
var status = badCerts.getRecentBadCert(host + ":" + port);
if (status)
{
var overrideService = Cc["@mozilla.org/security/certoverride;1"]
.getService(Ci.nsICertOverrideService);
overrideService.rememberValidityOverride(host, port, status.serverCert,
Ci.nsICertOverrideService.ERROR_UNTRUSTED, false);

// Override added, now you should re-do the request
...
}
}
}
});

注意:此代码尚未经过测试,特别是我不确定通过检查 response.status 来检测连接错误是否真的有效(我的猜测是如果出现连接错误它应该抛出但文档没有说明任何内容)。

关于ssl - 使用 firefox 插件访问 https 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com