前言
我在myssl.com上检测我的网站是否安全时发现我的网站只能评到A
然后我花了大量的时间让他评到A+
我想把这件事情记录下来
正文
0x00 HSTS
我第一次检测发现一个叫HSTS的东西不合规
我上网查了查原来是需要配置一个东西
让客户端知道在接下来的<15552000(大约180天)秒内使用https协议访问
配置方法
Nginx
add_header Strict-Transport-Security "max-age=15553000; includeSubdomains; preload";
Apache
# Apache 需加载 mod_header 库,一般位于 httpd.conf 文件,搜索 mod_headers 并取消注释。(已加载可跳过)
LoadModule headers_module modules/mod_headers.so
#然后对应站点 VirtualHost 里面插入HSTS响应头信息
Header always set Strict-Transport-Security "max-age=15768500; includeSubdomains; preload"
0x01 ATS配置
配置好HSTS之后发现又有一个ATS需要配置直接降到了B机
ATS是苹果公司在App Store上架需要的配置
Apache在httpd.conf中最后添加
<IfModule mod_ssl.c>
<VirtualHost *:443>
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
</VirtualHost>
</IfModule>
即可
Nginx修改nginx.conf文件在里面添加
server {
listen 443;
server_name test.com; //你的域名
ssl on;
ssl_certificate https://zigao-oss.oss-accelerate.aliyuncs.com/web/blog.zigao.info/assets/local/nginx/conf/test.com.crt; //从godaddy上下载下来合并的文件
ssl_certificate_key https://zigao-oss.oss-accelerate.aliyuncs.com/web/blog.zigao.info/assets/local/nginx/conf/test.com.key; //自己申请证书时做的key
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; //安全协议,iOS ATS只支持TLSv1.2即以上
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://test.com; //这里是我要代理的apache的域名
client_max_body_size 35m;
}
}
就可以了
后记
最后重启一下Nginx或者是Apache
不使用TLS1.0就可以符合PCI DSS标准
在myssl.com中检测就是A+啦
文中大部分内容来自网络我只是整合如果需要联系删除
还有什么留言吧