天天看點

Apache2.2.x版本不支援PFS,無法通過ATS的問題

有人提問,存在Apache配置Https,不能通過蘋果的ATS檢測問題,配置(完全正向加密)不能生效。通過查詢,網上有較多相同的問題,但是沒有很好的解答,最後通過排查

定位問題在Apache2.2版本上,對前向安全支援性不好。

Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

通路存在不能支援PFS的Web應用,檢視得到的密碼套件資訊:

Apache2.2.x版本不支援PFS,無法通過ATS的問題

通路可以通過ATS測試的Web應用,檢視得到的密碼套件資訊,主要差别在于對ECDHE的支援:

Apache2.2.x版本不支援PFS,無法通過ATS的問題

搜尋類似的相關問題,在中文站點找到一些相同情況的問題,但是都沒有給出有效的方案,或者給出的方案不能解決問題:

Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

開測試機進行測試,編譯安裝客戶的Apache版本2.2.25,并且配置SSl進行測試。

這裡Apache編譯安裝以及加入SSL子產品還是有幾個主要注意的點的。           
1、需要apt-get install openssl libssl-dev,否則會提示找不到SSL、TLS的ToolKit。

2、出現下圖的報錯,需要修改Apache代碼解決。           
Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

部署完成Apache2.2.25,并且開啟SSL後,測試通路https。

在沒有任何設定的情況下,不支援前向安全:

Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

配置SSLCipherSuite項,指定ECDHE加密套件,仍然是不支援前向安全,這樣就複現了提問者的問題:

Apache2.2.x版本不支援PFS,無法通過ATS的問題

在Google中使用英文将該問題進行描述,找到幾篇相關問題的記錄,時間都在2013年,提到Apache2.2.X版本不支援ECDHE和前向安全的問題:

Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

于是進行版本測試比對,測試Apache2.4,直接apt install apache2的結果就是2.4版本的。

開啟https後,上傳測試證書,進行通路,通過檢視是支援PSF(完美前向安全)的(套件攜帶ECDHE、通過ATS檢測):           
Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題

通過上述的一些測試和資料查找,基本确定該提問者碰到的問題是由于Apache版本問題造成的。

後來有人告訴我,有資料說可以在2.2環境下合規(下面資料中所示):

https://scottlinux.com/2013/06/26/how-to-enable-perfect-forward-secrecy-in-apache-on-linux/
Apache2.2.x版本不支援PFS,無法通過ATS的問題

但是根據提示進行配置,似乎不能通過檢查,且不能正常通路:

Apache2.2.x版本不支援PFS,無法通過ATS的問題
Apache2.2.x版本不支援PFS,無法通過ATS的問題