检查 Python 的证书信任
适用于服务器、容器或 Python 应用环境,使用当前 Python 的默认信任配置连接测试端点。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend python检查当前浏览器是否能拦截这批危险证书。
覆盖 6 个受影响 CA、12 条证书链,直接给出本次测试结果。
先验证测试环境,再检测十二项危险证书。结果适用于当前浏览器和本次测试环境。
测试前请关闭代理、VPN、TUN 和 HTTPS 抓包,不要忽略证书警告。
正在读取部署配置,尚未发起证书探测。
本次检测结果
页面不会自动连接测试端点。只有点击开始后,才会向已配置的端点发送随机校验值与测试编号。
请检查网络、代理和部署配置后重新运行。
正常对照应连通,负向对照应未连通。正常对照会在检测前后各运行一次。
G3B 为 eMudhra BV,G3C 为 eMudhra Inc。分别检查 emSign 链与 Sectigo 交叉签名链。
通过表示当前浏览器通过本批危险证书测试。企业业务应用、容器和其他运行环境请使用企业工具分别检测。
在业务实际使用的主机或容器运行。Python、Node.js、Java、Go 和 .NET 分别使用自己的 TLS 验证器,终端直接显示中文结果。启动命令需要 Python 3.9+ 和 curl。
适用于服务器、容器或 Python 应用环境,使用当前 Python 的默认信任配置连接测试端点。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend python使用 Node.js 原生 HTTPS 和当前 Node.js 的 CA 配置,支持 NODE_EXTRA_CA_CERTS。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend node使用当前 JVM 的默认信任库。应用使用独立 JKS 或 PKCS12 信任库时,可在下方高级参数中指定。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend java使用 Go 标准库 TLS 和系统根证书,支持当前环境的 SSL_CERT_FILE、SSL_CERT_DIR 配置。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend go使用 .NET 原生 HttpClient 和当前系统的证书信任配置。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend dotnet适用于通过 curl 访问 HTTPS 的脚本和运维环境,实际连接由本机 curl 校验证书。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --backend curl把路径改成应用实际使用的 PEM CA 文件。工具自动取到临时目录,证书链验证在本机完成,不连接测试端点。
curl -q -fsS https://photosheep.cc/certcheck/check.sh | sh -s -- --offline-bundled --ca-file '/path/to/ca-bundle.pem'先在联网设备下载单文件工具 ↗,拷入内网后执行下方命令。证书材料已包含在文件内,无需解压。
python3 ./photosheep-check.pyz --offline-bundled --ca-file '/path/to/ca-bundle.pem'复制与你的运行环境对应的命令,在终端执行即可。
需要 Python 3.9+ 和 py 启动器。下载到临时目录,运行后清理本次工具文件。
if (-not (Get-Command py -ErrorAction SilentlyContinue)) { throw '请先安装 Python 3.9+(含 py 启动器)' }; $p=Join-Path $env:TEMP ('photosheep-'+[guid]::NewGuid()+'.pyz'); try { Invoke-WebRequest 'https://photosheep.cc/certcheck/downloads/photosheep-check.pyz' -OutFile $p -ErrorAction Stop; py -3 $p --backend python; Write-Host ('检测退出码:'+$LASTEXITCODE) } finally { Remove-Item -LiteralPath $p -ErrorAction SilentlyContinue }【检测未通过】 当前验证器接受危险测试证书,需要处理。 弱链结果:接受 6 项 / 已拦截 6 项 / 测试异常 0 项(共 12 项) 对照检查:正常证书对照:正常;不可信证书对照:正常 建议:更新本环境的证书信任配置,然后重新检测。
全部危险证书被拒绝时显示“检测通过”;发现仍受信任的危险证书时显示“检测未通过”;环境、对照或材料异常时显示“测试失败”。
在线命令可追加 --ca-file '/path/to/ca-bundle.pem',让所选语言使用应用实际的 PEM CA 文件。
Java 的 JKS / PKCS12 文件可追加 --java-truststore '/path/to/truststore'。需要密码时,用 --java-truststore-password-env TRUSTSTORE_PASSWORD 读取已设置的环境变量。
指定业务运行程序可使用 --node、--java / --javac、--go 或 --dotnet,后接程序完整路径。工具不会自动安装或替换这些运行环境。
工具不安装证书、不关闭 TLS 校验,也不上传 CA 文件或检查报告。每次结果对应所选语言运行时、curl 或 CA 文件;业务运行环境不同,请分别检测。
十二项危险证书均未取得有效响应,且前后正常对照和负向对照符合预期时,判定检测通过。任一危险端点返回匹配响应,判定检测未通过。
正常对照失败、负向对照异常、超时、配置缺项或响应不匹配,均不会判为检测通过。逐项记录和本地报告保留本轮观察结果。
CA 撤信任、证书透明度(CT)等策略均可阻止危险证书被接受。当前批次证书没有 CT 证明,CT 拦截也是有效防护。通过不证明某一具体撤信任机制已生效,也不代表企业其他应用已完成修复。
点击开始后,浏览器仅向配置中启用的测试端点发起 GET 请求,携带随机 nonce 与测试编号;请求不携带浏览器凭据,使用 no-store,并拒绝重定向。页面不会读取文件、证书私钥、登录凭据或上传检查报告。
说明站与下载使用 CDN,测试端点使用已配置的云服务。服务会处理 IP 地址、访问时间与请求路径等访问元数据,并可能按实际配置记录日志;具体范围与保留时间以运营说明为准。这不等于上传企业检测报告。本地导出由浏览器生成 JSON 文件。