Freebsd
當我安裝了 openssl1.0.1 時,為什麼我的伺服器顯示 openssl 0.9.8?
我正在創建一個容易受到 heartbleed 錯誤影響的測試伺服器。
我的伺服器在 FreeBSD VM 上執行 Apache 2.4。預設情況下,FreeBSD 似乎預設安裝了 OpenSSL 0.9.8。我試圖從埠解除安裝 OpenSSL,但由於我沒有通過埠安裝它(預設情況下),我無法以這種方式解除安裝它。
然後我試圖忽略它並從原始碼安裝 OpenSSL 1.0.1;但是當我重新啟動 apache 伺服器並使用
curl --head 127.0.0.1
“OpenSSL 0.9.8”檢查站點時顯示。然後我嘗試重新安裝/重新配置 apache,但同樣的測試產生了“OpenSSL 0.9.8”。
所以,我嘗試像這樣替換預設的 OpenSSL:
通過埠安裝更新的 OpenSSL(試圖替換預設版本)
解除安裝埠安裝的 OpenSSL(試圖完全刪除預設的 OpenSSL)
我的源安裝只剩下一個,我認為這必須改變它
測試仍然產生“OpenSSL 0.9.8”(悲傷)
那麼,為什麼它仍然顯示“OpenSSL 0.9.8”?
我還想更改網站以使用 OpenSSL 1.0.1,因此有關此建議會有所幫助。
缺少的步驟是您必須告訴系統您要從埠使用OpenSSL,而不是來自基本系統的埠:
- 從埠建構OpenSSL :
- 創建/添加到您
/etc/make.conf
的以下行:WITH_OPENSSL_PORT=yes
- 然後重新安裝所有其他需要OpenSSL的模組(
devel/apr1
,www/apache24
, …)- 您可以檢查apache24使用的OpenSSL庫(實際上是apache24 mod_ssl模組):
# ldd /usr/local/libexec/apache24/mod_ssl.so |grep ssl /usr/local/libexec/apache24/mod_ssl.so: libssl.so.8 => /usr/local/lib/libssl.so.8 (0x801634000)
apache24 mod_ssl現在使用來自埠的OpenSSL庫。