SSL 設定更新

SSL Lab test

因為剛好我的 StartSSL 免費憑證要過期了,所以趁這次更新憑證的同時順便把一些過時的設定都改掉,不然之前我的評等已經新漏洞的關係掉到 F 了,做的事情也不複雜,第一個是把 SSLv3 也關掉:

SSLProtocol all -SSLv2 -SSLv3

然後限制 Cipher Suite:

SSLCipherSuite AES256+EECDH:AES256+EDH

這組 Cipher Suite 也是網路上找的,不過忘了留下連結,Cipher Suite 的建議組合網路上還蠻好找的,我用的這組基本上就是限制比較多,所以不少舊環境會無法建立連線,像是 Android 2、IE 6、Java 環境等,不過是很可以接受的程度。

光這樣的設定評等已經不錯了,不過會有個橘色字樣說不支援 TLS_FALLBACK_SCSV,會有被攻擊的危險,研究過後發現要升級 OpenSSL,然後我的系統是 Ubuntu 12.04 LTS,沒有新版的 OpenSSL,雖然也可以自己編譯,不過我還是決定升上 14.04 LTS。

另外有個特別被 highlight 的項目是我的憑證的 trust chain 中有一個是用 SHA1 簽章的,然後那個其實是 CA 的,就是從 Start SSL 抓的:

http://www.startssl.com/certs/sub.class1.server.ca.pem

在他的 cert 目錄下找了一下看到疑似是 SHA256 簽的:

http://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem

改成這個後看來就沒警告了,我想應該沒搞錯才是 :P

到這樣我發現總評等已經到 A 了,但是分數卻很難更高,所以先研究了一陣子怎樣到 A+,後來發現是我曾經開過的 Strict Transport Security(HSTS),暫時拿掉後忘了放回來,加上 HSTS Header 後總評等就可以上到 A+ 了。

設定到這樣其實已經很足夠了,不過我還是對於其中的 Protocol Support 這項沒有滿分感到很好奇,搜尋一陣子發現到要把 Protocol 關到只剩下 TLS 1.2 才會滿分,可是這樣支援度會很慘烈,因為還很多客戶端是只有到 TLS 1.0 的,所以就只抓個圖紀念一下。最後還花了點時間設定 OCSP Stapling,可以提昇效能,因為把 OCSP 上的資訊都抓下來放在本主機給客戶端用,不過目前感覺不到差異就是,設定也不難:

SSLUseStapling on
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)

好像放這兩行就可以了。