如何在apache中禁用TLS 1.0?
在我windows + apache2.4.38 上尝试了网上很多方法无效,最后找到一个答案就是:
apache SSL支持协议是全局设置,需要放在VirtualHost外面。
开启ocsp需要保持格式在命令上一行注释,否则可能会报错。不要问为什么,完全靠试出来的。
我的VirtualHost配置记录:
Listen 443
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol All -TLSv1
#开启ocsp
SSLUseStapling on
SSLCompression off
#缓存位置 需要mod_socache_shmcb模块
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
#ocsp装订正常缓存超时3600秒
SSLStaplingStandardCacheTimeout 3600
#ocsp装订错误缓存超时600秒
SSLStaplingErrorCacheTimeout 600
<VirtualHost *:443>
DocumentRoot "D:/blog"
ServerName blog.gamecf.cn
# SSL功能打开,如果在Virtualhost 出现这句,则仅作用于虚拟机站点配置范围,这个虚拟机站点全部使用SSL通信,如果出现在Virtualhost外,则作用于全局,整个服务器都使用 SSL(HTTPS)通信,不能采用HTTP通信,所以通常都在Virtualhost中加这句。
SSLEngine on
# 修改加密套件
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile D:/gamecf.cn.crt
# 证书私钥配置
SSLCertificateKeyFile D:/gamecf.cn.key
# 开启HTTP/2.0
Protocols h2 http/1.1
# 支持HTTP严格传输安全(HSTS)
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
# 支持HPKP
Header set Public-Key-Pins "pin-sha256=\"klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=\"; pin-sha256=\"633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q=\"; max-age=2592000; includeSubDomains"
<Directory "/">
Require all granted
AllowOverride All
Options Indexes FollowSymLinks ExecCGI
Require host ip
</Directory>
</VirtualHost>