在 JavaScript 中正确使用带有 Soup 的 SSL 证书

我想问一下如何在客户端站点上通过证书正确使用 gnome-shell 扩展中的 Soup。

我的代码片段如下所示:

const Soup = imports.gi.Soup;
const GObject = imports.gi.GObject;
const Gio = imports.gi.Gio;

const TlsDatabase = GObject.registerClass({
    Implements: [Gio.TlsFileDatabase],Properties: {
        'anchors': GObject.ParamSpec.override('anchors',Gio.TlsFileDatabase),},class TlsDatabase extends Gio.TlsDatabase {});


let session = Soup.Session.new();
session.ssl_strict = true;
session.tls_database = new TlsDatabase({anchors: "path.pem"});;
  • 在请求之后,我总是在答案中得到 Gio.TlsCertificateflags.GENERIC_ERROR。
  • 没有设置 session.tls_database,错误代码是 3,我没找到是什么意思。所以发生了一些事情,我怀疑 TlsDatabase 不正常。
  • 使用 session.ssl_strict = false,它可以工作并且我得到了答案,但我想要一个安全的连接。
  • 证书和服务器站点没问题,我已经用 curl curl --ssl --cacert path.pem ... 验证过了。它有效。

已编辑:

  • 显示此错误:g_tls_database_verify_chain: assertion 'G_TLS_DATABASE_GET_CLASS (self)->verify_chain' failed

感谢您的帮助。

shangkewocaoniquanji 回答:在 JavaScript 中正确使用带有 Soup 的 SSL 证书

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/20876.html

大家都在问