问题标签 [openssl]

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 回答
1951 浏览

apache - 对使用 SSL 支持配置 Apache 感到茫然和困惑

我花了几个小时试图将我的 Apache 服务器配置为使用没有公共 IP 的 SSL,只有 localhost。我已经创建了证书,我认为(这对我来说就像一个关于黑魔法的速成课程),当我尝试访问https://localhost时,浏览器在状态行,但只是永远加载。这是来自的片段error_log

那里一切似乎都还好,但与此同时,在ssl_engine_log...

...更像最后两行,直到我最终停止服务器...

一些关于这个permission denied的谷歌搜索和apr_proc_mutex_lock失败并没有产生任何有用的东西。只有一些与 MPM 和 perchild 选项相关的结果,但由于它们很旧(2002 年和 2003 年)而且我在阅读它们后真的不能得出任何结论,我问你是否有办法克服这个问题。好吧,首先:实际上是什么问题?模块之间是否存在某种不兼容?我是否必须重新编译某些东西(请主,不要再编译了,不)?

提前致谢。

0 投票
2 回答
8778 浏览

ruby - OpenSSL 验证来自自己 CA 的证书

大家好,感谢您花时间阅读本文。

我需要验证我自己的 CA 颁发的证书,我有证书。我怎样才能做相当于openssl的

openssl 验证 -CAfile

在 Ruby 代码中?OpenSSL 的 RDoc 在这方面不是很有帮助。我试过了:

但我得到:

我什至无法在 http://www.ruby-doc.org/stdlib/libdoc/openssl/rdoc/index.html的 OpenSSL Rdoc 中找到“验证” 。

任何帮助表示赞赏。再次感谢!

0 投票
1 回答
508 浏览

security - Openssl 的 BIO 包装器和 SSL 调用有什么区别?

如果使用 BIO_* 方式比原始 SSL_* 调用具有明显优势,我一直很困惑。

我总是使用非生物,因为我认为我有更多的控制权。

0 投票
1 回答
1700 浏览

https - SSL错误的解决方法

我正在连接的 https 服务器的 SSL 实现似乎存在错误;问题最初出现在我的应用程序中,但我一直在使用 openssl 命令行实用程序调试/复制它,所以我相当肯定它与我的应用程序无关。

如果我连接到远程服务器时没有其他选项-connect,OpenSSL 会发送 SSLv2 CLIENT-HELLO,服务器会以 TLSv1 ServerHello 响应,一切正常。

如果我用 连接-ssl3,OpenSSL 发送一个 SSLv3 ClientHello,服务器用 SSLv3 ServerHello 响应,一切都很好。

但是,如果我使用-no_ssl2or连接-tls1,OpenSSL 会发送一个 TLSv1 ClientHello,并且服务器会使用 响应"TLS 1.0 Alert [length 0002], fatal unexpected_message",这是我在应用程序中看到的原始问题。

在这一点上,有许多可能的解决方法,但我理想情况下是在寻找通用的东西,而不是对这个特定的服务器进行特殊处理,所以我希望有某种“标准”的解决方法。

0 投票
1 回答
3773 浏览

security - What is the main purpose of openssl's SSL_CTX_use_certificate_file?

The man page did not clearly specify this. But looking at openssl's apps implementations, SSL_CTX_use_PrivateKey* calls are usually made after SSL_CTX_use_certificate_file succeeded. I assume this is mostly used at the server side.

I recently confused the above function with SSL_CTX_load_verify_locations wherein you could specify a CA certificate file and path. It turned out that SSL_CTX_load_verify_locations is the one I needed to verify a server certificate which is signed by a Trusted Authority.

0 投票
4 回答
10701 浏览

ssl - 使用 OpenSSL 从证书签名请求中提取请求的有效期

我们使用由 OpenSSL 提供支持的私有证书颁发机构来验证我们的客户。我们提供了一个简单的基于 Web 的实用程序,允许他们上传 CSR 文件供证书颁发机构签名。

目前,我们只能颁发固定期限的证书,目前是 365 天。但是,我们的客户询问是否可以指定证书的有效期。

我宁愿不必询问用户他们想要什么有效期,因为他们必须在生成 CSR 时指定有效期,并且在签署证书时从 CSR 中提取该有效期是有意义的。但是我不知道该怎么做:OpenSSL 让您调试 CSR、证书和密钥的正常操作不显示相关信息:这是“openssl req -text -noout < csr文件”:

任何地方都没有提到要求的有效期。

有什么建议么?

0 投票
1 回答
2533 浏览

visual-c++ - 如何使用符号在发布模式下构建 OpenSSL?

我通常通过这样做来构建我的 openssl 库:

对于调试小型转储,我想为 2 个 dll 获取一个 pdb 文件(同时仍以“发布”模式构建它们)。我已将 /Zi 添加到 ms\ntdll.mak 的 CFLAGS 部分,但是当我查看 Visual Studio 调试器中的内存模块时,我仍然得到“二进制文件不是使用调试信息构建的”。我错过了一步吗?

谢谢

0 投票
1 回答
559 浏览

ssl - 嵌入式网络服务器和证书

我有一个带有嵌入式网络服务器的应用程序。该网络服务器现在可以通过 OpenSSL 包执行 SSL :)

现在到证书问题。这个应用程序已售出,我之所以这么说,是因为它不仅位于我拥有的服务器上——它还安装在数千台计算机上。我希望我的客户是安全的,所以我希望他们尽可能轻松地使用 SSL。现在我们创建自己的 CA,然后创建自签名证书。这意味着我们所有的客户(和他们的用户)都需要安装他们自定义的、特定于安装的 CA,或者忍受来自证书的不受信任的根警告,这两者都没有吸引力。

如何解决这个问题?

我们要么需要:

  1. 让安装我们的 CA 变得非常简单(浏览器故意让这些 CA 变得非常困难——很多可怕的警告对话框)
  2. 不知何故,所有这些客户证书都由浏览器认可的 CA 合法签名。
  3. 强迫客户去购买自己的证书并安装它

我不知道我们将如何做#1,所以我们正在看#2。#3几乎是不可能的。

我们突然想到,我们可以购买一个 SSL 证书,并将其与我们的产品一起提供——是的,每个人都在使用相同的证书,并且证书和私钥可能/将会泄露到公共域......嗯。 ..出于责任的缘故,可能不希望我们的名字出现在上面...

我想问题在于我们一开始就违背了 CA 的目的。有关如何使用户轻松安全地进行此操作的任何想法?(假设中间人攻击不是问题——真的有记录吗??)

0 投票
1 回答
551 浏览

openssl - 我自己/小型组织的证书颁发机构

我需要一个满足以下条件的小型 CA 软件:

  1. CLI 接口(我们都非常讨厌服务器软件的 gui 东西,不是吗?)
  2. 为网站颁发证书。所以我可以在客户端机器上安装一个根证书来摆脱那个警告)
  3. 使用预定义的值颁发用户证书(作为 p12 和其他东西,所以我可以使用它们进行身份验证)。

我在看tinyca,但它有点过时了,对我来说效果不佳。

Openssl 可以完成所有这些工作,因此我可以编写一堆 shell 脚本(或者 Makefile)来自动执行此任务。所以我想知道是否已经有人这样做了?

0 投票
1 回答
1815 浏览

php - 使用 OpenSSL 的 MediaWiki/Apache/PHP/MySQL 的数据库连接需要 SSL

对于一个学校项目,我在本地机器上安装了 MediaWiki,并且需要使用 SSL 与本地 MySQL 数据库建立任何数据库连接。我不确定如何连接所有的点。这是我到目前为止所做的:

  1. 我已经安装了 OpenSSL,并创建了一个自签名证书和相关的密钥。
  2. phpinfo() 显示 OpenSSL 已启用。
  3. 我已将其包含在 my.ini 的 [mysqld] 部分中:

ssl-key="C:/newcerts/server-key.pem" ssl-cert="C:/newcerts/server-cert.pem" ssl-ca="C:/newcerts/ca-cert.pem"

  1. 运行 MySQL 命令行提示我输入 root 密码,输入后,我收到错误 1045:Access denied 等。

  2. 从 bin 目录运行 mysql -u root -p ssl-ca="C:/newcerts/ca-cert.pem" 并输入密码成功,并给我一个mysql提示符。运行状态显示 SSL: Cipher in use is DHE-RSA-AES256-SHA。

这就是我感到困惑的地方。还需要做什么(例如通过 Apache 或 PHP 配置文件,或 MediaWiki 文件)来要求数据库连接使用 SSL?