配置 Apache 服务器以使用特定的 OpenSSL 引擎
Configure Apache server to use specific OpenSSL Engine
我有一个可用的 OpenSSL RSA 引擎(即 .so
文件)和一个配置为 SSL 模式的 Apache 服务器。
如何让 Apache 使用我的 RSA 引擎中的 RSA 实现?换句话说:我应该把引擎放在哪里(.so
文件),如何修改 openssl.cnf
文件以及如何构建 Apache?
首先我不完全理解你的问题。我想你的意思是你的系统上安装了 Apache 正在使用的 OpenSSL 版本,你想使用你也下载并安装的不同版本(可能是更新版本)?
这实际上取决于哪个平台(Windows 或 Linux),您如何安装 Apache(预安装在系统上,通过 yum 或 apt-get 等包管理器,或手动安装源)。
像 Windows 安装和包管理器中的预构建包倾向于使用系统默认的 SSL 库并且不是最容易更改的(尽管我对它们都不够熟悉说实话) .
所以最简单的方法是从源代码而不是从预构建的包安装 Apache。
您通常需要在编译时进行设置,下载源代码后,使用 --with-ssl 选项进行配置,然后再使用 make 构建您的代码:
./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so
如果您之前没有从源代码安装过,那么这可能有点吓人。我在博客 post here on HTTP2 上给出了关于如何从 linux: https://www.tunetheweb.com/performance/http2/ 上的源代码下载和安装最新的 OpenSSL 和 Apache 的详细说明,但您的网站上可能有更好的选择具体平台。
对我有用的步骤:
1.Install 来自源的 OpenSSL,在 运行 ./config
时指定 -DOPENSSL_LOAD_CONF
1.1.Create/build 您的 OpenSSL 引擎并将其添加到您的 openssl.cnf
文件
2.Install 来自源的 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.Edit httpd-ssl.conf
通过添加 SSLCryptoDevice engine_id
并确保在执行 $ openssl engine
时,engine_id
说明符出现在列表中。此外,您必须创建自签名证书和私钥,修改 httpd.conf
文件,但这不是本题的主题。搜索:如何在 Apache 上配置 HTTPS。
3.$ httpd -k restart
仅此而已。
编辑
.so
文件 (Openssl ENGINE) 的位置必须在 openssl.cnf
.
中指定
我有一个可用的 OpenSSL RSA 引擎(即 .so
文件)和一个配置为 SSL 模式的 Apache 服务器。
如何让 Apache 使用我的 RSA 引擎中的 RSA 实现?换句话说:我应该把引擎放在哪里(.so
文件),如何修改 openssl.cnf
文件以及如何构建 Apache?
首先我不完全理解你的问题。我想你的意思是你的系统上安装了 Apache 正在使用的 OpenSSL 版本,你想使用你也下载并安装的不同版本(可能是更新版本)?
这实际上取决于哪个平台(Windows 或 Linux),您如何安装 Apache(预安装在系统上,通过 yum 或 apt-get 等包管理器,或手动安装源)。
像 Windows 安装和包管理器中的预构建包倾向于使用系统默认的 SSL 库并且不是最容易更改的(尽管我对它们都不够熟悉说实话) .
所以最简单的方法是从源代码而不是从预构建的包安装 Apache。
您通常需要在编译时进行设置,下载源代码后,使用 --with-ssl 选项进行配置,然后再使用 make 构建您的代码:
./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so
如果您之前没有从源代码安装过,那么这可能有点吓人。我在博客 post here on HTTP2 上给出了关于如何从 linux: https://www.tunetheweb.com/performance/http2/ 上的源代码下载和安装最新的 OpenSSL 和 Apache 的详细说明,但您的网站上可能有更好的选择具体平台。
对我有用的步骤:
1.Install 来自源的 OpenSSL,在 运行 ./config
时指定 -DOPENSSL_LOAD_CONF
1.1.Create/build 您的 OpenSSL 引擎并将其添加到您的 openssl.cnf
文件
2.Install 来自源的 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.Edit httpd-ssl.conf
通过添加 SSLCryptoDevice engine_id
并确保在执行 $ openssl engine
时,engine_id
说明符出现在列表中。此外,您必须创建自签名证书和私钥,修改 httpd.conf
文件,但这不是本题的主题。搜索:如何在 Apache 上配置 HTTPS。
3.$ httpd -k restart
仅此而已。
编辑
.so
文件 (Openssl ENGINE) 的位置必须在 openssl.cnf
.