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