常见的服务器 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

IIS Crypto 使用推荐

对于不太熟悉 SSL 各种协议的人,可以根据图示点击 best 选择最佳方案,之后点击 apply 应用。

修改完成后需要重启服务器。

转自:服务器SSL不安全漏洞修复方案 - csdn