2020年5月15日 星期五

APACHE&NGINX SSL 關閉RC4 、SSL v3、TLSv1.0及更新Diffie-Hellman 參數

至主機以下位置修改
/etc/apache2/mods-available/ ssl.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RC4部份

原先RC4是
SSLCipherSuite HIGH:MEDIUM:!ADH:!MD5

更換為以下設定值

SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SSL通訊埠部份

至於原先是
SSLProtocol -all -SSLv3 -TLSv1

更換為
SSLProtocol -all +TLSv1.2  即可完成!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nginx 以下SSL DH相關問題

weak Diffie-Hellman (DH) key exchange parameters


https://snippetinfo.net/mobile/media/1604

https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

建立 Diffie-Hellman 參數
主要解決 Diffie-Hellman 公開金鑰不足,要產生一個檔案加入設定
# 產生 DH parameters
openssl dhparam -out /etc/ssl/certsdhparam.pem 4096
然後在 nginx.conf 的 SSL 設定加上
ssl_dhparam /etc/ssl/certs/certsdhparam.pem;
這樣就可以完成!

說明-編輯設定檔

找到SSLProtocol、SSLCipherSuite、SSLHonorCipherOrder三個設定值

SSLProtocol

設定SSL協定。可以用『+、-』分別表示『允許、拒絕』某些特定的協定。(Apache: SSLProtocol Directive)

SSLCipherSuite

用來決定SSL在交換key演算法、認證演算法、加密演算法、MAC Digest演算法、、(Apache: SSLCipherSuite Directive)

SSLHonorCipherOrder

加密套件偏好順序,這邊設定成on,可以使用戶端使用伺服器端給予的加密套件偏好。(Apache: SSLHonorCipherOrder)