问题标签 [gnutls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
677 浏览

ssl - NGINX 中的 gnutls 和 openssl 握手

我正在 NGINX 中测试 SSL/TLS 流代理,它将使用 gnutls 作为底层 TLS API 连接到 Web 服务器。使用gnutls(gnutls-serv)中的命令行测试工具整个过程都可以工作,但是我无法理解逻辑:

NGINX 客户端(将 HTTP 请求从实际客户端代理到 gnutls 服务器)似乎想要多次握手连接。事实上,在大多数测试中,在服务器响应测试网页之前,它似乎握手 3 次而没有错误。使用wireshark,或者只是调试消息,看起来客户端的套接字(从gnutls服务器的角度来看)正在关闭并在不同的端口上重新打开。最后在成功的连接上,gnutls 使用了一个恢复会话,我想这是前面提到的成功握手之一。

我没有找到任何关于这种行为的文档,我想知道这是否只是“NGINX 的事情”。

尽管握手最终适用于测试程序,但它似乎有点浪费(有多次昂贵的握手)并且在非测试环境中实现握手逻辑将是棘手的,而无需真正了解客户端正在尝试做什么。

我认为传输没有任何超时或问题,测试环境是连接在 1 个交换机之间的同一子网上的几个不同的虚拟机。

NGINX 版本是最新的主线:1.11.7。我最初使用的是 1.10.something,尽管存在更多传输错误,但行为相似。升级后这些错误似乎得到了很好的清理。

非常感谢其他人的任何信息或经验!

0 投票
1 回答
261 浏览

macos - 在 OSX 上编译 FileZilla

我一直在尝试在 Mac 上为研究项目编译 FileZilla 版本 3.11 和 3.24,但是当我运行 ../configure 时出现以下错误:

但是,我使用自制软件安装了 gnutls;当我跑步时

我可以看到安装在 /usr/local/Cellar/gnutls/3.5.8/ 的库

任何解决问题的想法都值得赞赏。谢谢

0 投票
0 回答
839 浏览

c - 使用带有 OpenSSL 的 PKCS11 令牌的两种方式 TLS 连接

我正在尝试建立与服务器的 TLS 1.2 连接。我必须使用存储在 PKCS11 令牌上的证书和密钥,但我似乎无法在 OpenSSL 中找到正确的函数来执行此操作。

我已经使用 [1] 实现了与 gnuTLS 类似的东西。OpenSSL 中是否有对应的 C/C++ 函数?基本上,我正在寻找一种编程方式来设置对象路径(PKCS#7 格式)和回调函数,因为解锁令牌需要 PIN。

甚至可以使用 OpenSSL 集成 PKCS#11 令牌吗?我找到了让我设置证书和密钥的功能,但只能作为本地机器上的文件 [2]。

任何帮助深表感谢。

[1] http://www.gnutls.org/manual/html_node/Using-a-PKCS11-token-with-TLS.html

[2] https://www.openssl.org/docs/man1.0.1/ssl/SSL_CTX_use_certificate_file.html

0 投票
1 回答
7203 浏览

ftp - gnutls_record_recv:TLS 连接未正确终止。假设 EOF

我正在尝试使用Gitlab管道 ci 来构建我的网站并通过 FTPS 将其部署到我的 GoDaddy 主机。现在一切都在试运行。如果我尝试从我的顶级域 (www.mysite.com/build) 转移到新目录,该命令将在我的本地计算机和 Gitlab 管道上成功执行。但是,如果我尝试覆盖顶级域中的文件以实际更新站点,它仅适用于我的本地,但无法从 Gitlab 管道连接。


转移到新目录的命令:(
从我的 Gitlab.com 和我的本地机器上运行运行良好)


转移到顶级域的命令,覆盖现有代码:(
在我的本地机器上运行良好,但从未设法从 Gitab.com 正确连接)


我怀疑这可能是 GoDaddy 或 Gitlab 设置的问题,但我想先在这里检查一下,看看我是否遗漏了任何明显的错误。

我在下面的日志中包含了--debug标志集。

转移到新目录(/build)

Gitlab.com(工作)


本地机器(工作)



转移到顶级域(覆盖/更新)

Gitlab.com **(不工作)**


本地机器(工作)

0 投票
2 回答
7979 浏览

git - Bitbucket gnutls_handshake() 失败:拉取函数中的错误

我在新创建的带有 bitbucket 的 Ubuntu 16.04 操作系统上遇到问题。当我从bitbucket存储库克隆 repo时,出现以下错误

克隆到“my-demos”... 致命:无法访问“ https://amepani@bitbucket.org/amepani/my-demos.git/ ”:gnutls_handshake() 失败:拉取函数中的错误。

我已经浏览了此链接,但无法解决问题。我已经更新了 JDK 版本,还安装了最新版本的 git,但得到了同样的错误。

让我知道如何解决这个问题。

0 投票
0 回答
423 浏览

ssl - OpenVAS Go TLS 证书错误

我目前正在为 OpenVAS 开发一个自定义扫描仪。问题是与我的自定义服务器的握手失败。

我将问题追溯到 error -73: GNUTLS_E_ASN1_TAG_ERRORfrom gnutls_handshake,但我找不到有关该问题的任何资源。我当时读到了一些关于证书不正确的信息,但除了重新生成 OpenVAS 证书之外我无能为力。go 服务器中的 tls 功能只使用一个简单的ListenAndServeTLS并获取服务器证书和密钥。

编辑:所以这是自定义扫描仪上的相关网络部分:

函数句柄(conn net.Conn){

}

功能主要(){

}

它取自一个示例,但起初它不能正常工作(在 parsecertificates 之前没有解码)。也许正因为如此,证书现在格式错误?在添加两个解码之前,我遇到了关于 asn1 标签不匹配的类似错误。所以也是一个 asn1 错误。我想生成自己的证书,但我不知道这是否不会破坏其他扫描仪的 OpenVAS。仅在 go 中使用 listenandservetls 时,我得到了相同的结果。该错误肯定是在 gnutls_handshake 中产生的。令人沮丧的是,我只能从中得到一个错误代码。

0 投票
1 回答
27 浏览

c - 如何告诉 NetBeans gnutls 在我的系统上的什么位置?

我尝试在我的 macOS Sierra 上使用 NetBeans 构建 C/C++ 项目,并收到以下错误消息:

我确实gnutls安装了。如何告诉 NetBeans 在哪里寻找它?

0 投票
1 回答
186 浏览

c - 为什么 libonion 的 websockets.c 示例给出错误“如果未编译 gnutls,则无法计算 SHA1!”

我正在尝试运行 libonion 的 websockets.c 示例(https://github.com/davidmoreno/onion/tree/master/examples/websockets)。但是,当我运行它时,它会出现此错误。

“[ERROR codecs.c:389] 如果未编译 gnutls,则无法计算 SHA1!现在中止”

其他示例运行良好。

我正在编译:

$ gcc -o muz websockets.c -I$ONION_DIR/src/ -L$ONION_DIR/src/onion/ -lonion_static -Lpam -Lgnutls -Lgcrypt -lpthread

终端输出如下所示。

0 投票
0 回答
612 浏览

php - 如何强制 PHP 的 cURL 扩展使用 OpenSSL 而不是 GnuTLS?

我有一个 PHPUnit 测试套件正在运行,它在我的本地机器上成功通过,但在Travis CI上失败。

我已经确定测试失败是由于使用 GnuTLS 而不是 OpenSSL 的 cURL 扩展,我不知道如何强制它使用 OpenSSL。

我得到的错误是:

我尝试按照此处提供的说明进行操作,但由于无法远程访问 Travis 实例,因此不断上传不同的配置并等待它们每次运行是令人沮丧的。

查看 Travis 系统信息,我可以看到以下内容:

所以我知道安装了 OpenSSL,cURL 安装了 OpenSSL,并且 PHP 在 5.6.31 上运行。

我也有以下输出php -i

我怎样才能SSL Version成为OpenSSL/1.0.1f而不是GnuTLS/2.12.23

0 投票
0 回答
172 浏览

python - FreeTDS 静态链接到具有 GNUTLS 支持的 PYMSSQL

我正在尝试为 pymssql 创建一个 whl,其中包括具有 GNUTLS 支持的 FreeTDS。我的构建在docker上的 cflinuxfs2 上,它基于 ubuntu 14.04。此图像包括 gnutls,我使用以下选项编译了 FreeTDS R1_00:

我正在尝试按照他们遵循的PYMSSQL 文档步骤中的说明通过使用 -fPIC 集进行编译来创建公共 whl(不带 tls)。

我已经设定:

在运行设置之前。PYMSSQL 库中的 PY 和生成的 whl 不包括 gnutls 符号。当我导入 pymssql 时,我得到:

ImportError:/usr/lib64/python2.7/site-packages/pymssql.so:未定义符号:gnutls_pem_base64_decode

我应该怎么做才能在 pymssql.so 中包含对 FreeTDS 中使用的 gnutls 符号的动态引用?

有没有更好的方法来做到这一点?归根结底,我需要一个包含带有 TLS 支持的 FreeTDS 的 whl,这样我就可以将它包含在一个烧瓶应用程序中,该应用程序将在 cloudfoundry 上的 python_buildpack 上运行。