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