You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome访问本地API获取已删除证书,如何定位该证书来源

无效自签名证书来源排查方案

前置操作:获取证书唯一标识

首先从Chrome报错页导出目标证书,确认唯一特征:

  • 点击地址栏左侧「不安全」提示 -> 选择「证书无效」
  • 切换到「详细信息」标签页,记录证书的CommonName(公用名称)、SHA-256指纹
  • 点击「导出」将证书保存为.pem格式备用

排查步骤

1. 全局扫描证书相关文件

之前的文件名检索可能遗漏了证书内容匹配、Java专属密钥库格式的文件,执行以下命令全局扫描:

# 替换<你的SHA-256指纹前8位>为之前记录的指纹前8个字符
sudo find / -type f \( -name "*.pem" -o -name "*.crt" -o -name "*.p12" -o -name "*.jks" -o -name "*.keystore" -o -name "*.pfx" \) -exec grep -l "<你的SHA-256指纹前8位>" {} \; 2>/dev/null

同时排查JDK默认信任库/密钥库是否存在该证书,路径通常为$JAVA_HOME/jre/lib/security/cacerts,可执行以下命令查询:

# 替换<证书CommonName>为之前记录的公用名称
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -alias "<证书CommonName>" -storepass changeit

2. 排查服务运行配置

本地API返回证书由运行的服务进程控制,优先排查运行相关配置:

  • 查看IntelliJ对应运行配置的VM参数,是否存在-Djavax.net.ssl.keyStore=、-Dserver.ssl.key-store等SSL相关参数,确认指向的路径是否存在旧证书
  • 扫描项目根目录所有配置文件(application.yml、application.properties、.env、docker-compose.yml等),检索ssl、cert、keyStore相关配置项,是否有硬编码的证书内容或未清理的旧路径
  • 若本地启动了Nginx、Traefik等反向代理服务,排查代理的SSL配置,是否仍然绑定旧证书

3. 排查端口占用与残留进程

大概率存在未被杀死的旧服务进程占用目标端口,返回旧证书:

# 替换<服务端口>为你的本地API端口
sudo lsof -i :<服务端口>

对比返回的PID对应的进程是否为当前IntelliJ启动的Java进程,若不是,执行kill -9 <对应PID>杀死残留进程后重启服务即可。

4. 清理浏览器安全策略缓存

所有浏览器都报错的情况下仍然需要排查全局HSTS规则缓存:

  • Chrome地址栏输入chrome://net-internals/#hsts,在「Delete domain security policies」模块输入本地API的域名,点击删除后重启浏览器
  • 执行sudo dscacheutil -flushcache清理Mac系统DNS缓存

内容的提问来源于stack exchange,提问作者eflat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:54:04