2016-04-14 65 views
0

我有一個可用的OpenSSL RSA引擎(即.so文件)和一個在SSL模式下配置的Apache服務器。
如何讓Apache使用RSA引擎實現RSA?換句話說:我在哪裏放引擎(.so文件),我該如何修改openssl.cnf文件,以及如何構建Apache?將Apache服務器配置爲使用特定的OpenSSL引擎

+2

[在Unix和Linux Stack Exchange上通過mod_ssl在Apache中運行時自定義OpenSSL引擎](http://unix.stackexchange.com/q/180343)和[通過engine_pkcs11和OpenSSL將Apache與PKCS#11設備集成] (http://serverfault.com/q/711580)在服務器故障。 – jww

+0

嗨jww,我已經閱讀過你提供的第一個鏈接,但我不知道如何修改'openssl.cnf'文件。你認爲[this](https://www.openssl.org/docs/manmaster/apps/config.html)會是一個好的開始嗎? –

+0

@jww我修改了'openssl。cnf'文件,並按照我在前面的評論中提供的鏈接中所述添加了我的引擎。 [Apache文檔](http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcryptodevice)說:「要發現支持哪些引擎名稱,運行命令」openssl engine「」,但我的引擎ID不會出現在列表中。我怎樣才能解決這個問題? –

回答

0

的步驟,爲我工作:從源

1.安裝OpenSSL的,運行./config
1.1.Create /建立你的OpenSSL引擎和它添加到您的openssl.cnf文件
2.安裝的httpd時指定-DOPENSSL_LOAD_CONF源,使用以下命令:

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就是這樣。

EDIT
.so文件(Openssl的ENGINE)的地方必須在openssl.cnf指定。

1

首先,我不完全理解你的問題。我假定你的意思是你的系統上安裝了Apache正在使用的OpenSSL版本,並且你想使用另外一個(也許是後來的版本),你也下載並安裝了這個版本?

這真的取決於該平臺(Windows或Linux),你怎麼安裝的Apache(預裝系統,通過的軟件包管理器像百勝或易於得到,或者手動從源代碼安裝)。

像Windows安裝和軟件包管理器那樣的預先構建的軟件包傾向於使用系統默認的SSL庫,並且不是最容易改變的(儘管我對它們都不太熟悉)。

因此,最簡單的方法是從源代碼而不是從預編譯的軟件包安裝Apache。

您通常需要使用make來構建你的代碼之前設置這個在編譯時,下載源後,使用--with-SSL選項來配置:

./configure --with-ssl=/usr/local/ssl --enable-ssl --enable-so 

如果您還沒有安裝從源頭之前,這可能有點嚇人。我在HTTP2的博客文章中給出了關於如何從Linux上的源代碼下載和安裝最新的OpenSSL和Apache的詳細說明:https://www.tunetheweb.com/performance/http2/,但在您的特定平臺上可能會有更好的選擇。

+0

我不認爲我理解得很好。所以當我嘗試安裝Apache時,我應該使用你在上面的答案中陳述的內容。 –

+0

我擴大了我的答案。 –

+0

我不想使用不同的OpenSSL版本。我只想集成一個[OpenSSL引擎](https://www.openssl.org/docs/manmaster/crypto/engine.html),以便使用不同的RSA算法實現。 –

相關問題