将Apache服务器配置为使用特定的OpenSSL引擎



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

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

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

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

因此,最简单的方法是从源代码安装Apache,而不是从预构建的软件包安装。

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

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

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

对我有用的步骤:

1.从源代码安装OpenSSL,在运行./config时指定-DOPENSSL_LOAD_CONF
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通过添加SSLCryptoDevice engine_id编辑httpd-ssl.conf,并确保在执行$ openssl engine时,engine_id说明符出现在列表中。此外,您必须创建自签名证书和私钥,修改httpd.conf文件,但这不是本问题的主题。搜索:如何在Apache上配置HTTPS
3.CCD_ 12,仅此而已。

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

最新更新