配置Apache服务器以使用特定的OpenSSL Engine

时间:2016-04-14 15:02:31

标签: apache openssl mod-ssl openssl-engine

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

2 个答案:

答案 0 :(得分:1)

首先,我不完全理解你的问题。我认为你的意思是你在你的系统上安装了一个Apache正在使用的OpenSSL版本,而你想要使用另外一个(可能是更晚版本)你已经下载和安装的版本?

这取决于哪个平台(Windows或Linux),如何安装Apache(预安装在系统上,通过yum或apt-get等软件包管理器,或从源手动安装)。

Windows安装和软件包管理器中的预构建软件包倾向于使用系统默认的SSL库,并且最容易更改(尽管我并不熟悉它们,但老实说)。< / p>

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

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

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

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

答案 1 :(得分: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.cnf文件(Openssl ENGINE)的位置。