常见的服务器 SSL 安全漏洞及修复方案
常见的服务器 SSL 安全漏洞
常见的服务器 SSL 安全漏洞有 SSLv2 TLS (DROWN attack)、SSLv3 POODLE、SSL/TLS Bar Mitzvah Attack 等等。
如何检测 SSL 安全漏洞
可以通过 ssllabs 检测你的网站是否存在 SSL 相关的漏洞。
修复方案
有漏洞就要打补丁或者其他补救措施,对于不同类型的服务器,有以下不同的修复方案:
Nginx服务器
注意:nginx 和 openssl 套件版本过低可能会导致无法启用新型加密套件和算法,请升级最新版本。
(openssl1.0.1+ 版本支持 TLS1.1 和 TLS1.2协议)
升级后配置 Nginx
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
apache服务器
注意:apache 和 openssl 套件版本过低可能会导致无法启用新型加密套件和算法,请升级最新版本。
(openssl1.0.1+ 版本支持 TLS1.1 和 TLS1.2 协议)
(OpenSSL 发布最新长期支持版本 1.1.1,支持 TLS 1.3)
apache2.X版本:
SSLProtocol all -TLSv1 -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
SSLHonorCipherOrder on
Tomcat服务器
JDK 版本过低也会带来不安全漏洞,请升级 JDK 为最新版本。升级 JDK 风险请安按照系统升级风险酌情考虑。
(先备份再配置,低版本的配置后有启动不了的风险,请升级 tomcat 和 jdk 版本,JDK1.7 及以上支持 TLS1.2 协议)
Tomcat 6 (prior to 6.0.38)
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="keystore/domain.jks" keystorePass="证书密码"
clientAuth="false" sslProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" />
Tomcat 7 and later
< Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="keystore/SSL.jks" keystorePass="证书密码"
clientAuth="false" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" />
使用apr的tomcat(windows环境路径请使用“\”)
<Connector port="443" maxHttpHeaderSize="8192"
maxThreads="150"
protocol="HTTP/1.1"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true"
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
SSLCertificateFile="conf/2_domian.com.crt"
SSLCertificateKeyFile="conf/3_domian.com.key"
SSLCertificateChainFile="conf/1_root_bundle.crt" />
IIS服务器
使用我们的套件工具,按照如下图进行修复。
下载地址:
IIS Crypto - windows server 2008
IIS Crypto - windows server 2012
备注:windows server 2003 不支持 tls1.1 和 1.2 请升级至 2008 R2 或 2012
对于不太熟悉 SSL 各种协议的人,可以根据图示点击 best 选择最佳方案,之后点击 apply 应用。
修改完成后需要重启服务器。