insomnia出现“unable to verify the first certificate”错误,主因是ssl证书链信任失败;解决方法包括:一、临时禁用验证(仅限开发);二、导入并信任服务器证书;三、补全服务端证书链;四、校准系统时间并更新根证书库;五、cli工具启用--insecure参数。

如果您在使用Insomnia发起HTTPS请求时遇到SSL证书验证失败错误,显示“unable to verify the first certificate”,则通常是由于客户端无法建立对服务器证书链的信任。以下是多种可行的修复方法:
一、禁用SSL证书验证(临时调试用)
此操作将跳过所有TLS证书校验,适用于开发或测试环境中的快速验证,但严禁在生产环境中启用,因其完全暴露通信于中间人攻击风险之下。
1、打开Insomnia主界面,点击左上角菜单栏中的“Preferences”(偏好设置)。
2、在左侧导航栏中选择“General”(常规)选项卡。
3、向下滚动至“Request Settings”(请求设置)区域,找到“Validate SSL Certificates”(验证SSL证书)复选框。
4、取消勾选该选项,保存设置并重启Insomnia。
二、手动导入并信任服务器证书
当目标服务使用自签名证书或私有CA签发的证书时,可通过将该证书添加至Insomnia信任库实现安全通信。该方式保留SSL验证机制,仅扩展信任范围。
1、使用浏览器访问目标HTTPS地址,点击地址栏锁图标 → “连接是安全的” → “证书有效”。
2、在证书窗口中切换至“详细信息”选项卡,点击“复制到文件”,选择Base64编码的X.509格式(.cer),保存至本地。
3、回到Insomnia,进入“Preferences” → “Certificates”(证书)选项卡。
4、点击“Add Certificate”,选择刚导出的.cer文件,并确保“Host”字段填写准确的域名或IP(如api.example.com或192.168.1.100)及对应端口(如443)。
5、点击“Save”,重启Insomnia后重试请求。
三、检查并补全服务器证书链
Insomnia验证失败常源于服务器未返回完整证书链(缺失中间证书),导致客户端无法追溯至受信根证书。此问题需从服务端修复,但可通过OpenSSL命令快速确认。
1、在终端执行:openssl s_client -connect api.example.com:443 -showcerts(将api.example.com替换为实际域名)。
2、观察输出中是否包含多个BEGIN CERTIFICATE段;若仅有一个且Issuer非知名CA(如DigiCert、Sectigo),则表明链不完整。
3、联系服务器管理员,确认Nginx/Apache配置中ssl_certificate指令指向的PEM文件是否已合并服务器证书与全部中间证书(顺序为:服务器证书 → 中间证书 → 中间证书…,不可含根证书)。
4、验证修复效果:再次运行上述OpenSSL命令,确认返回多段证书且最后一条Issuer为可信根CA。
四、校准系统时间并更新根证书存储
SSL/TLS协议依赖精确时间戳验证证书有效期。若系统时间偏差超过数分钟,或操作系统根证书库陈旧,均会导致验证失败。
1、在Windows中右键任务栏时间 → “调整日期和时间” → 开启“自动设置时间”与“自动设置时区”。
2、在macOS中进入“系统设置” → “通用” → “日期与时间” → 勾选“自动设置日期与时间”。
3、在Linux终端执行:sudo apt update && sudo apt install --reinstall ca-certificates(Debian/Ubuntu)或sudo yum update ca-certificates(RHEL/CentOS)。
4、重启Insomnia并重试请求。
五、使用CLI参数绕过验证(仅限bru命令行工具)
若通过Bruno CLI(Insomnia生态兼容工具)运行请求,可直接在命令中附加不安全模式参数,避免修改全局设置。
1、确保已安装Bruno CLI v1.36.0或更高版本。
2、在项目目录下执行:bru run --envLocal --insecure(适用于单次调试)。
3、如需永久生效,在环境配置文件(如.env.local)中添加:strictSSL=false。











