1. OCSP装订(英语:OCSP Stapling)
正式名称为TLS证书状态查询扩展,可代替在线证书状态协议(OCSP)来查询X.509证书的状态。服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。
2. 动机
OCSP装订解决了在线证书协议中的大多数问题。CA给网站颁发证书之后,网站的每个访问者都会进行OCSP查询。因此使用在线证书协议时,高并发的请求会给CA的服务器带来很大的压力。同时由于必须和CA建立连接,OCSP查询还会影响浏览器打开页面的速度并泄漏用户隐私。此外,当OCSP查询无法得到响应时,浏览器必须选择是否在无法确认证书状态的情况下继续连接,造成安全性和可用性二选一的困局。
3. 意义
在服务器上部署ocsp装订,能大大缓解链接数与高并发量,省去多次握手操作,使网站访问速度更快。
1. 环境简介
Linux或Windows服务器一台。系统自带有openssl工具,或单独安装的openssl工具。
2. 网络要求
此站点拥有一个合法的外网可以访问的域名地址。
3. 中间件版本
Apache 2.X版本以上,编译安装。
1. 下载证书
在您完成申请数安时代GDCA服务器证书的流程后,登录系统将会下载一个压缩文件,使用Apache_IIS_Tomcat_Server里面的文件;文件内有issuer.crt,www.domainame.com.crt(此为原申请的域名命名的证书)。
2. 获取私钥证书文件
请找到申请证书时填写csr下载的私钥key文件,以便后续部署使用。
3. 上传证书
将公钥证书crt,中级证书issuer.crt,私钥key文件上传到服务器指定文件夹。
1. 修改Apache/httpd.conf文件
去掉以下语句的注释符
LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
2. 修改主机域名
打开Apache2.x/conf/extra/目录下httpd-ssl.conf文件,修改如下语句:
<VirtualHost *:443> DocumentRoot "/var/www/html" #网站根目录 ServerName www.domainame.com #站点域名 SSLProtocol all -SSLv2 -SSLv3 #禁用低版本加密协议 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!3DES:!MD5:!ADH:!RC4:!DH:!DHE #加密套件 SSLEngine on #开启加解密 SSLCertificateFile /usr/local/apache/conf/www.domainame.com.crt #公钥 SSLCertificateKeyFile /usr/local/apache/conf/www.domainame.com.key #私钥 SSLCertificateChainFile /usr/local/apache/conf/issuer.crt #中级证书 </VirtualHost>
3. 重启Apache
保存退出,并重启Apache,通过https方式访问您的站点,测试站点证书的安装配置(如果访问不通,请查看服务器防火墙是否拦截443端口)。
1. 修改配置
打开Apache2.x/conf/extra/目录下的httpd-ssl.conf文件,修改配置文件:
去掉以下语句前面的注释符
SSLUseStapling On #开启ocsp SSLStaplingCache "shmcb:/usr/local/apache24//logs/ssl_stapling(32768)" #缓存位置
2. 优化参数(可去掉注释)
SSLStaplingStandardCacheTimeout 3600 #ocsp装订正常缓存超时3600秒 SSLStaplingErrorCacheTimeout 600 #ocsp装订错误缓存超时600秒
配置完成,保存退出。重启Apache,就成功启用了OCSP Stapling。
3. 测试OCSP Stapling状态。
(1)命令如下:
openssl s_client -connect com:443 -servername com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response" #注:测试的是站点域名与https默认端口443,域名也可用本地127.0.0.1来代替测试。
若站点返回OCSP response: no response sent,代表开启失败。
若站点已成功启用OCSP Stapling,会返回以下提示:
(2)或者使用:
echo QUIT | openssl s_client -connect com:443 -status 2> /dev/null | grep -A 17 'OCSP response:' #注:测试的是站点域名与https默认端口443,域名也可用本地127.0.0.1来代替测试。
执行后,若没有返回信息,则开启失败。
若站点已成功启用OCSP Stapling,会返回以下提示:
4. 外网域名检测
输入域名,点击submit进行检测。
若ocsp stapling这项是yes,代表站点ocsp stapling已成功开启。