2.问题描述 在Windows server 2003和Windows server 2008,远程桌面服务SSL加密默认是关闭的,需要配置才可以使用;但 Windows server 2012默认是开启的,且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷,当Windows server 2012开启远程桌面服务,使用漏洞扫描工具扫描,发现存在SSL/TSL漏洞,如图1所示:
windows
3.解决办法 方法一:使用Windows自带的FIPS代替SSL加密 1)启用FIPS
操作步骤:管理工具->本地安全策略->安全设置->本地策略->安全选项->找到”系统加密:将FIPS兼容算法用于加密、哈希和签名”选项->右键”属性”->在”本地安全设置”下,选择”已启用(E)”,点击”应用”、”确定”,即可。
2)禁用SSL密码套件
操作步骤:按下’ Win + R’,进入”运行”,键入” gpedit.msc”,打开”本地组策略编辑器”->计算机配置->网络->SSL配置设置->在”SSL密码套件顺序”选项上,右键”编辑”->在”SSL密码套件顺序”选在”已禁用(D)” ,点击”应用”、”确定”,即可。
3)删除默认CA认证书
操作步骤:按下’Win + R’,进入”运行”,键入”mmc”,打开”管理控制台”->”文件”->”添加/删除管理单元(M)”->在”可用的管理单元”下选择”证书”->单击”添加”->在”证书管理单元”中选择”计算机用户(C)”,点击”下一步”->在”选择计算机”中选择”本地计算机(运行此控制台的计算机)(L)”,单击”完成”->回到”添加/删除管理单元”,单击”确定”->回到”控制台”->”证书(本地计算机)”->”远程桌面”->”证书”->在默认证书上右键”删除”即可。
如果需要重新导入/配置新的CA证书:(可生产新的CA证书/或Linux生产证书导入到Windows,默认的证书采用TLS1.0的加密方式,Nessus等扫描器会提示“脆弱的加密",报漏洞)
linux
升级openssl版本
https://blog.51cto.com/u_13864558/6870187
tomcat
在tomcat/conf/server.xml中找到https端口配置,添加Ciphers="......",此处添加支持的算法,不支持的算法请勿加入其中!
<Connector port="10004" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" minSpareThreads="250" maxSpareThreads="1000"
enableLookups="false" acceptCount="1000" connectionTimeout="8000"
maxProcessors="2000" maxThreads="2000" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/XXXXXXXXXXXX.pfx" keystoreType="xxxxx" keystorePass="xxxxxxxx" sslEnabledProtocols="TLSv1" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
Ciphers="TLS_DHE_RSA_WITH_AES_128_CBC_SHA ,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
/>
重启tomcat
cd tomcat-home/bin/
./shutdown.sh :关闭
./startup.sh :启动
nginx
在nginx/conf/nginx.conf中配置https端口配置
server
{
listen 80;
listen 443 ssl https2;
#使用HTTP/2,需要Nginx1.9.7以上的版本
ssl on;
server_name ykqi.cn www.ykqi.cn;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/dist/ykqi;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
add_header X-Frame-Options DENY;
#禁止被嵌入框架
add_header X-Content-Type-Options nosniff;
#防止在IE9、Chrome和Safari中的MIME类型混淆
ssl_certificate /www/server/panel/vhost/ssl/1_ykqi_bundle.crt;
ssl_certificate_key /www/server/panel/vhost/ssl/2_ykqi.key;
#SSL证书文件位置
ssl_dhparam /www/server/panel/vhost/ssl/dhparam.pem;
#DH-Key交换**文件位置
#SSL优化配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#只允许TLS协议
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#加密套件,这里用了CloudFlares Internet facing SSL cipher configuration
ssl_prefer_server_ciphers on;
#由服务器协商最佳的加密算法
ssl_session_cache builtin:1000 shared:SSL:10m;
#Session Cache,将Session缓存到服务器,这可能会占用更多的服务器资源
ssl_session_tickets on;
#开启浏览器的Session Ticket缓存
ssl_session_timeout 10m;
#SSL session过期时间
add_header Strict-Transport-Security "max-age=6307200; includeSubdomains; preload";
#开启HSTS,并设置有效期为“6307200秒”(6个月),包括子域名(根据情况可删掉),预加载到浏览器缓存(根据情况可删掉)
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
#PROXY-START
location /
{
proxy_pass http://localhost:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
#持久化连接相关配置
#proxy_connect_timeout 30s;
#proxy_read_timeout 86400s;
#proxy_send_timeout 30s;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "upgrade";
#add_header X-Cache $upstream_cache_status;
#expires 12h;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
access_log /www/wwwlogs/ykiq.cn.log;
error_log /www/wwwlogs/ykqi.cn.error.log;
}
nginx重启
systemctl restart nginx