我有一个可用的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)的位置。