Apache mod_ssl 在 Ubuntu 14.04 上使用 OpenSSL ENGINE

Apache mod_ssl 在 Ubuntu 14.04 上使用 OpenSSL ENGINE

我已经安装了 OpenSSL 1.0.1f 并创建了一个使用 GPU 进行 RSA 加速的引擎。该引擎是动态的,因此是全球知名的。
然后我安装了 Apache $ sudo apt-get install apache2,创建了自签名证书以提供 HTTPS 服务,修改了配置文件等。
这两个部分可以正常工作,但各自独立,即当我尝试指定 Apache 使用 RSA 引擎(在 OpenSSL 1.0.1f 中)时,它会失败并显示消息:

* The apache2 configtest failed. Not doing anything.
Output of config test was:
AH00526: Syntax error on line 3 of /etc/apache2/sites-enabled/default-ssl.conf:
SSLCryptoDevice: Invalid argument; must be one of: 'builtin' (none), 'rsax' (RSAX engine support), 'dynamic' (Dynamic engine loading support)

所以我的问题是:
在 Ubuntu 14.04 64 位下,Apache 是否使用除我安装的版本之外的其他版本的 OpenSSL?
我如何将 Apache 与 OpenSSL 链接以使用该引擎?

Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jan 14 2016 17:45:23

动态引擎包括:

root@dani-pc:/etc/apache2# openssl engine
(rsax) RSAX engine support
(dynamic) Dynamic engine loading support
(rsagpu) RSA GPU engine support

所以我添加SSLCryptoDevice rsagpu/etc/apache2/sites-available/default-ssl.conf文件并且失败了,但是SSLCryptoDevice rsax效果很好。

答案1

最终对我有用的步骤:

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 engineengine_id说明符出现在列表中。此外,您必须创建自签名证书和私钥,修改文件httpd.conf,但这不是本问题的主题。搜索:如何在 Apache 上配置 HTTPS。3.
$ httpd -k restart这样。

相关内容