0

我有一个可用的 OpenSSL RSA 引擎(即一个.so文件)和一个配置为 SSL 模式的 Apache 服务器。
如何让 Apache 使用我的 RSA 引擎中的 RSA 实现?换句话说:我将引擎(.so文件)放在哪里,如何修改openssl.cnf文件以及如何构建 Apache?

4

2 回答 2

2

首先,我不完全理解你的问题。我想您的意思是您的系统上安装了 Apache 正在使用的 OpenSSL 版本,并且您想使用您也下载并安装的其他版本(可能是更高版本)?

这实际上取决于哪个平台(Windows 或 Linux),如何安装 Apache(预先安装在系统上,通过 yum 或 apt-get 之类的包管理器,或从源代码手动安装)。

像 Windows 安装和包管理器中的预构建包倾向于使用系统默认的 SSL 库,并且不是最容易更改的(尽管老实说我对它们都不够熟悉)。

所以最简单的方法是从源代码而不是从预构建的包中安装 Apache。

您通常需要在编译时设置此项,下载源代码后,使用 --with-ssl 选项进行配置,然后再使用 make 构建代码:

./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so

如果您之前没有从源代码安装,那么这可能有点吓人。我在一篇关于 HTTP2 的博客文章中给出了详细说明,关于如何从 linux 上的源代码下载和安装最新的 OpenSSL 和 Apache:https ://www.tunetheweb.com/performance/http2/但可能有更好的选择您的特定平台。

于 2016-04-14T15:21:06.817 回答
0

对我有用的步骤:

1.从源安装 OpenSSL,指定-DOPENSSL_LOAD_CONF何时运行./config
1.1.创建/构建您的 OpenSSL 引擎并将其添加到您的openssl.cnf文件
2.从源安装 httpd,使用以下命令:

CFLAGS='-DSSL_EXPERIMENTAL_ENGINE -DSSL_ENGINE -DOPENSSL_LOAD_CONF' ./configure --enable-ssl --with-ssl=/usr/local/ssl --with-pcre=/usr/local/pcre --enable-so      
make       
make install

2.1 httpd-ssl.conf.通过添加编辑SSLCryptoDevice engine_id并确保执行时$ openssl engine,说明engine_id符出现在列表中。此外,您必须创建自签名证书和私钥,修改httpd.conf文件,但这不是这个问题的主题。搜索:如何在 Apache 上配置 HTTPS。
3.$ httpd -k restart仅此而已。

编辑
文件 的位置.so(Openssl ENGINE)必须在openssl.cnf.

于 2016-06-26T15:37:43.713 回答