问题标签 [libressl]

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 投票
4 回答
4291 浏览

windows - 有没有办法在 Windows 上运行 LibreSSL?

我想在 Windows 上使用 LibreSSL 而不是 OpenSSL,但我还没有发现任何发行版。我错过了吗?或者有没有一种不太复杂的方法来自己编译它?

0 投票
2 回答
1942 浏览

openssl - 如何使用 NSS 或 GnuTLS 而不是 OpenSSL 构建 openSSH?

由于 OpenSSL 的安全问题,我想改用 NSS 或 GnuTLS。对于 Apache 服务器的需求,这很容易,因为每个模块都有一个模块。但是对于 SSH,它看起来很困难,如果不是不可能的话。

Dropbear 嵌入了自己的算法,不对外开放。OpenSSH 过去是使用 OpenSSL 构建的,但几个月后,由于有了新选项,可以在没有它的情况下构建它:

但是随后使用了来自 DJ Bernstein 作品的软件加密算法。这很好,但不适合我,因为我将使用 TPM,因此可以访问 pkcs11 层。因此,正确的解决方案是使用 NSS 或 GnuTLS 构建 OpenSSH。

我不能等待Linux 上的LibReSSL,也不能使用刚刚发布并使其成为 SSL 默认层的 OpenBSD。

所以我的问题是:是否有人尝试并设法使用 NSS 或 GnuTLS 而不是 OpenSSL 构建 OpenSSH,或者修补 Dropbear 或任何其他解决方案以使 SSH 服务器与 TPM 和 EC 身份验证一起使用?

注意:由于我的资源有限,我不能将 OpenSSL 与 OpenSSH 和 NSS 与 Apache 一起使用。我绝对需要最小化嵌入式库。

0 投票
2 回答
994 浏览

c++ - 如何正确执行 OpenSSL 证书?

我目前正在修补什么是有效的聊天服务器。由于我不想过多地暴露我的用户,我使用 LibreSSL 的 OpenSSL 库的分支为其添加了 TLS 加密。其余代码似乎工作正常,但我认为我没有正确地做证书。

我在服务器上有一个私有/公共证书,它不仅应该用于加密通信,还可以确保服务器确实是客户端想要与之交谈的对象。这是我无法弄清楚的部分:

  1. 如何将服务器的公钥提供给客户端?它需要它来验证它正在与正确的服务器通信。还是我应该做其他事情,可能涉及根 CA 的证书?有 API 可以提供吗?我可以将公钥与可执行文件打包为.pem,但我找不到告诉 OpenSSL 用于客户端请求的公共服务器密钥或根 CA 的 API。

  2. 如何获取客户端的系统证书?现在我只是在一个.pem文件中创建了一个,但我真的不想为每个下载客户端的用户构建一个具有唯一证书的新下载。当然有一种方法可以通过一些 OpenSSL API 获取“当前用户的证书”或自动生成一个用于此用途的证书?

如果有人能指出我要使用的正确 API,那就太好了!我还会提供线索、指向类似问题的链接、教程、针对 OpenSSL-crypto-beginners 的书籍的指针、答案或示例代码。

目前,我同时使用SSL_CTX_use_certificate_file()SSL_CTX_use_PrivateKey_file()在客户端和服务器程序中设置证书。您可以在上面链接的 Github 聊天服务器存储库中看到代码,在eleven_session.cpp

0 投票
2 回答
1364 浏览

ssl - string.h:29:8:错误:预期标识符

我正在尝试使用此脚本使用自定义 openssl »libressl« 编译 nginx:https ://gist.github.com/Belphemur/3c022598919e6a1788fc

使用 libressl 2.1.1 一切正常。问题是 libressl 2.1.1 存在一些安全问题,新版本已解决这些问题。
但是我无法让构建与 libressl 2.1.2 或 libressl 2.1.3(最新版本)一起使用。

我得到的问题:

有什么问题以及如何解决?
感谢您的帮助。

0 投票
1 回答
789 浏览

c++ - 获取谷歌搜索 ssl pem 证书

出于测试目的,我想建立与谷歌的 https 连接并开始搜索。我从这里下载了 OpenSSL 示例。在代码中,我必须在这里加载一个 pem 文件:

现在我搜索谷歌搜索的证书。我在哪里可以得到它?

0 投票
2 回答
3509 浏览

c++ - 用于客户端 TLS 连接的 OpenSSL 或 LibreSSL C++ 示例

我正在寻找 C++ 中的客户端 TLS 连接示例。最适合 Visual Studio,但老实说,它可以是任何编译器。我找到了几个 C 样本。但是没有人工作。我从 C 中的这个示例开始: https ://wiki.openssl.org/index.php/SSL/TLS_Client

但它失败了

如果我想连接到我自己的 node.js 服务器(使用直接 IP 地址)或使用 encrypted.google.com 作为 url 连接到“错误的主机名查找”,则使用“系统库”。使用 libressl 和 Visual Studio 2013。

下一站: http: //fm4dd.com/openssl/sslconnect.htm

这里程序运行成功。但是任何尝试在最后写入 SSL 连接:

强制服务器关闭连接(我不知道到底发生了什么,因为我现在不知道如何告诉 node.js 告诉我更多信息)。

因此,我搜索了一个工作示例或如何使用在 C++ 中运行的自己的证书获得 TLS 连接

0 投票
1 回答
84 浏览

perl - 在 Perl 构建脚本中测试 LibreSSL

Net::NSCAng::Client前一阵子发布了,在 OpenBSD 上遇到了很多测试失败。原因是 NSCAng 协议在预共享密钥模式 (RFC4279) 中使用 OpenSSL,LibreSSL(现在 OpenBSD 上的默认设置)的人们已经淘汰了这一点。然而,他们似乎一心想以最不透明的方式做到这一点:包含文件定义了所有函数,只是共享库缺少相应的符号,所以编译工作正常但测试失败。

OpenBSD 上有一个名为 eopenssl 的兼容性包,通过首先在 Makefile.PL 中进行测试(使用),如果安装了兼容性库,ExtUtils::PkgConfig我可以使其工作。如果不是,事情仍然失败。

我可以检查 CPP 符号 OPENSSL_NO_PSK,但由于包含始终来自 LibreSSL,因此即使与 eopenssl 链接可以正常工作,它也会失败。我剩下的唯一想法是尝试让测试程序像 autoconf 那样作为编译阶段的一部分运行。这甚至可能ExtUtils::MakeMaker(或其他东西 - 如果必要的话我不介意切换构建系统)?

0 投票
5 回答
368081 浏览

macos - 如何在 macOS 中安装 wget?

我尝试在 MAC OS 10.11.1 中安装 wget,但是当我运行时出现./configure --with-ssl=openssl此错误:

如何在 OSX 10.11.1 中解决这个问题?

0 投票
0 回答
423 浏览

python - 在 Windows 上使用 LibreSSL 构建 python-cryptography

我想使用 Visual Studio 2015 在 Windows 7 x64 上为 Python 3.5 构建加密模块并将其链接到 LibreSSL。我尝试按照文档中的指南进行手动构建,并将 INCLUDE 和 LIB 设置为适当的 LibreSSL 目录。但是我遇到了关于(出乎意料的)LibreSSL 标头的语法错误。以前我能够在同一台机器上毫无问题地构建 LibreSSL。

构建日志: http: //pastie.org/private/p3rakrxljcgugttc2yg5q(在开发人员命令提示符中)

最好的方法是什么?

0 投票
1 回答
565 浏览

libressl - libtls: select() 和 tls_read() 一起工作

我想为多年前编写的旧聊天应用程序添加 ssl 支持。我在 OpenSSL 和 LibreSSL 上做了很多阅读,我决定尝试一个新的 libtls API。我认为开发人员在这方面做得非常出色。我发现它非常易于使用 - 在需要时几乎不需要更改我现有的代码。但这是我现在需要弄清楚的一件事:

过去,我使用 select() 来监视套接字和 recv() 来读取数据。这很容易,因为这两个函数都在文件描述符上工作。

现在,使用 libtls,函数 tls_read() 需要一个 tls 上下文作为第一个参数。这意味着每次我准备好读取描述符时,我都需要搜索客户端列表以获取适当的 tls 上下文。这并不难,但也许有人知道更好的解决方案?我将感谢所有评论和代码示例。