Nginx怎么实现多域名Nginx服务器批量检测OCSP Stapling启用率脚本

云晨姑娘_9874

云晨姑娘_9874

2026-09-24

918人浏览

原创

批量检测域名ocsp stapling状态需用openssl 1.0.2+执行s_client命令检查status_request扩展响应;脚本逐行读取domains.txt,通过-tlsextdebug和grep“ocsp response:”判断启用与否,并提示nginx配置要点及优化建议。

nginx怎么实现多域名nginx服务器批量检测ocsp stapling启用率脚本

要批量检测多个域名的 OCSP Stapling 启用状态,核心思路是:对每个域名发起 TLS 握手,检查 Server Hello 中是否携带了 status_request 扩展响应(即 OCSP Stapling 数据)。Nginx 本身不提供直接的“批量检测”命令,需借助外部工具(如 openssl s_client)配合 Shell 脚本完成。

准备前提:确保环境支持 OCSP 检测

OpenSSL 版本需 ≥ 1.0.2(推荐 1.1.1 或更新),且编译时启用了 OCSP 支持(主流发行版默认满足)。执行以下命令验证:

  • openssl version -a | grep -i ocsp —— 应有 enable-ocsp 字样
  • openssl s_client -help 2>&1 | grep -q status_request && echo "OK" —— 无输出则不支持

编写批量检测脚本(Shell + openssl)

以下为轻量、可靠、可直接运行的 Bash 脚本,支持读取域名列表并逐个检测 OCSP Stapling 是否生效:

#!/bin/bash
# save as: check_ocsp.sh
# usage: chmod +x check_ocsp.sh && ./check_ocsp.sh domains.txt
<p>DOMAINS_FILE="${1:-domains.txt}"</p><p>if [[ ! -f "$DOMAINS_FILE" ]]; then
echo "Error: Domains file '$DOMAINS_FILE' not found."
exit 1
fi</p><p>while IFS= read -r domain; do
[[ -z "$domain" || "$domain" =~ ^[[:space:]]<em># ]] && continue
domain=$(echo "$domain" | sed 's/^[[:space:]]</em>//; s/[[:space:]]*$//')</p><p>echo -n "[$domain] OCSP Stapling: "</p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill3427" title="Nginx Config Linter"><img
														src="https://img.php.cn/upload/skill/000/000/081/178955659937208.jpg" alt="Nginx Config Linter" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/xiazai/skill3427" title="Nginx Config Linter" class="overflowclass">Nginx Config Linter</a>
													<p class="overflowclass">对 Nginx 配置文件进行语法检查、验证和安全、性能审计。</p>
												</div>
												<a rel="nofollow" href="/xiazai/skill3427" title="Nginx Config Linter" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div><h1>尝试 443 端口,超时 5 秒,仅检查 TLS 握手和 stapling 响应</h1><p>if timeout 5 openssl s_client -connect "$domain:443" -servername "$domain" \
-status -tlsextdebug 2>/dev/null | grep -q "OCSP response:"; then
echo "<font color="green">✅ Enabled</font>"
else
echo "<font color="red">❌ Disabled or Timeout</font>"
fi
done </p><p>使用方式:</p>
  • 新建 domains.txt,每行一个域名(如 example.comapi.your-site.net),支持注释(以 # 开头)
  • 赋予执行权限:chmod +x check_ocsp.sh
  • 运行:./check_ocsp.sh domains.txt

Nginx 配置中启用 OCSP Stapling 的关键项

脚本检测的是实际生效状态,而非配置是否存在。若结果多为 ❌,请检查 Nginx SSL 配置是否包含以下必需指令:

  • ssl_stapling on; —— 启用 Stapling 功能
  • ssl_stapling_verify on; —— 强制验证 OCSP 响应签名(推荐开启)
  • ssl_trusted_certificate /path/to/full_chain.pem; —— 必须指定含根证书和中间证书的完整信任链(不能只用 ssl_certificate
  • resolver 8.8.8.8 1.1.1.1 valid=300s; —— 必须配置 DNS 解析器,且不可用 127.0.0.1(除非本地运行可信 DNS)
  • resolver_timeout 5s; —— 避免因 DNS 延迟导致 stapling 失败

注意:Nginx 在首次请求后才开始缓存 OCSP 响应,首次检测可能延迟或失败,建议等待 1–2 分钟后再运行脚本复测。

进阶建议:提升检测准确性与效率

生产环境可进一步优化检测逻辑:

  • 添加 HTTP Host 头探测(curl -I --resolve domain:443:IP https://domain)辅助判断是否真实响应 HTTPS
  • parallel 替代 while 循环实现并发检测(如 cat domains.txt | parallel -j10 ./check_single.sh
  • 将结果导出为 CSV 或 JSON,便于后续统计启用率(例如:启用数 / 总域名数 × 100%)
  • 结合 Prometheus + nginx_exporter,通过 nginx_ssl_handshake_status{stapling="1"} 指标长期监控(需自定义指标暴露)

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2412

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3992

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习