Ubuntu 18.04 環境下取消 Apache 2.4 的 TLSv1.0 教學

突然接到一個求救,資安掃描的時候掃出 TLSv1.0 應該要關閉的漏洞,就開始 Google 要怎麼設定,Apache 小蛙不熟,通常都是問題來一個找一個解一個,來兩個找兩個解一雙 ~ 這篇記錄留給有需要的人。

這問題直接丟 Google 會有很多很多一拖拉庫的解法,不過有些應該是 CentOS 或是其他版本的,小蛙看 Ubuntu 18.04 + Apache 2.4 的路徑在 /etc/apache2/,跟網路上很多教學裡提到的 /etc/httpd/ 不一樣,就 ~ 都試試看吧。

終於看到一篇好像不錯 Disabling TLS 1.0 on Apache web servers,嗯嗯,路徑不同,不過既然知道要修改的屬性名稱叫做「SSLProtocol」,那就到小蛙的目錄 /etc/apache2/ 來搜尋一下

$ cd /etc/apache2/
$ grep -ir "SSLProtocol" *
mods-available/ssl.conf:        SSLProtocol all -SSLv3

Bingo! 找到在模組資料夾中的 ssl.conf,動手改掉他吧!小蛙收到的需求是把 1.0 跟 1.1 關閉,保留 1.2 即可,因此把上面的 SSLProtocol all -SSLv3 改成 SSLProtocol TLSv1.2,改好之後 sudo service apache2 restart,立馬到 Check SSLv2 and SSLv3 測試看看,結果 … 竟然沒生效 @@

左查右查,會不會是上面的網站 cache 呢?下指令查查看

$ nmap --script ssl-enum-ciphers -p 443 ip或domain | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

我的天啊 ~ 真的沒生效 … (如果沒有安裝的話可以先 apt-get install nmap 來安裝這個套件),查了很多 stackoverflow 終於找到這篇 Disabling TLS 1.0 in Apache 2.4,原來設定有成功,只是因為小蛙使用了 letsencrypt 的免費 SSL,造成 Apache 載入 SSL 設定的時候,會被較後面載入的 letsencrypt 設定檔蓋掉,因此前面的 ssl.conf 才會設定了但沒有效果。把剛剛上面的設定檔設定到 /etc/letsencrypt/options-ssl-apache.conf 看看吧!

$ nmap --script ssl-enum-ciphers -p 443 ip或domain | grep TLSv
|   TLSv1.2:

打完收工,太感謝 stackoverflow 的那個答案了,真的好想幫他按讚,可惜小蛙的積分不夠 >..<

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *