openssl

Lsetea7 小时前
linux·https·ssl证书·openssl·curl
curl用IP测试HTTPS报证书不匹配:--resolve与Host头别混用切换DNS前用IP测试HTTPS,补Host头仍报证书不匹配?命令可能换掉了“要验证谁”。本文用回环实验拆开连接地址、TLS身份和HTTP路由,验证--resolve与--connect-to。
Lsetea1 天前
linux·https·ssl证书·openssl·证书链
OpenSSL verify报unable to get issuer certificate:error 2与partial_chain排查中间证书明明放进了CA文件,OpenSSL却报unable to get issuer certificate。补了链还不行,是证书坏了,还是信任放错了位置?本文以error 2为入口,区分“提供建链材料”和“指定信任锚”,再判断是否真的应该使用-partial_chain。
Lsetea2 天前
运维·https·ssl证书·openssl·证书链
OpenSSL verify报unhandled critical extension:error 34与关键扩展排查HTTPS证书域名没错、链也补齐了,OpenSSL verify却报unhandled critical extension。先别继续下载根证书:这次要查的是某层证书里的关键扩展,验证程序能不能理解并执行它。本文从error 34和depth入手,定位扩展、核对签发模板,再保持正常验证策略验收。
Lsetea3 天前
运维·https·ssl证书·openssl·证书链
OpenSSL verify报CA certificate key too weak:auth_level与弱密钥链排查证书链齐全、域名也对,OpenSSL verify却报CA certificate key too weak。问题可能不是缺链,而是某层公钥强度达不到验证策略。本文用auth_level固定门槛,分清叶子与CA弱密钥,再换对应材料,不把安全等级往下拧。
Lsetea5 天前
运维·https·ssl证书·openssl·证书链
OpenSSL verify报invalid CA certificate:basicConstraints与keyCertSign排查中间证书文件明明在,OpenSSL verify却报invalid CA certificate,有时紧跟着key usage does not include certificate signing。先别忙着再拼一份fullchain:找到签发者,不等于它有资格签证书。这里从basicConstraints和keyUsage入手,区分缺链、CA资格和用途限制,最后给出可留档的验证方式。
Lsetea6 天前
运维·https·ssl证书·openssl·san
OpenSSL verify报error 62:证书主机名不匹配与-verify_hostname排查证书链已经显示OK,加上主机名却报 error 62: hostname mismatch,先别急着重签。链信任回答“谁签的、是否可信”,名称验证回答“是不是我要访问的服务”。下面用OpenSSL 1.1.1的参数把这两件事拆开,再检查SNI选证书和Shell退出码。能连上,不等于找对了人。
Lsetea6 天前
运维·https·ssl证书·openssl·证书链
OpenSSL verify报certificate signature failure:error 7与证书签名排查证书能被OpenSSL读出来,域名和有效期也像是对的,执行verify却报certificate signature failure。这时别急着补SAN,也别把证书塞进信任库碰运气。error 7关注的是证书签名验证,不是“文件长得像证书”就能过关。本文按错误深度、签发者材料、文件一致性和复验四步排查。
Lsetea7 天前
运维·https·ssl·openssl·curl
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查把根证书放进目录,curl 还是报 unable to get local issuer certificate;改成 --cacert 指向同一张证书却能连通。这类问题可能不是证书缺了,而是 OpenSSL 找不到目录里的“索引”。本文只讨论使用 OpenSSL 后端的 curl,把 CA 文件、哈希目录和真实 HTTPS 验收分开。
Lsetea8 天前
运维·https·ssl证书·openssl·证书链
OpenSSL报path length constraint exceeded:CA层级与pathlen排查根证书已信任,中间证书也补齐了,执行验证却报 path length constraint exceeded。这次不一定是“少了一张”,也可能是链的层级超出了CA证书允许的范围。下面用OpenSSL的error 25定位出错CA,再区分证书里的pathlen和客户端的深度限制,避免修错开关。
Lsetea8 天前
https·shell·ssl证书·openssl·tls
OpenSSL s_client退出码为0却证书验证失败:严格校验与Shell管道排查用 openssl s_client 连 HTTPS,打印了证书和 Cipher,退出码也为 0,可浏览器仍报不信任。诊断工具愿意继续握手,不等于证书通过验收。本文拆开身份验证与 Shell 退出码,给出可执行检查方法。
Lsetea8 天前
运维·https·ssl证书·openssl·证书链
OpenSSL报permitted subtree violation:证书SAN与CA名称约束排查HTTPS叶证书没过期,SAN也包含访问域名,OpenSSL却报 permitted subtree violation。别急着重装根证书:这可能是CA证书的名称约束拒绝了下级名称。下面区分“访问名能否匹配”和“这条链能否为这些名称背书”,再用error 47、48和离线命令定位。
Lsetea9 天前
nginx·https·ssl证书·openssl·证书链
OpenSSL verify报error 20:CAfile、fullchain与本地信任链分层排查看到 unable to get local issuer certificate,很多人先想到证书过期。其实 OpenSSL 的 verify 是在当前信任材料里找不到能继续向上构链的签发者。常见场景是:叶子证书已换新,服务端能完成 TLS 握手,但客户端拿不到中间证书,于是报 error 20 at 0 depth lookup。
Lsetea17 天前
运维·https·ssl证书·openssl·证书链
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间常见场景:证书面板显示还有几个月才到期,客户端却报 certificate has expired。先拆开“证书没过期”:你看的是哪一张证书,又是哪台机器在判断时间?HTTPS 验证的是一条信任路径,不是只看到期日。
Lsetea17 天前
运维·nginx·https·ssl·openssl
Nginx报No required SSL certificate was sent:mTLS客户端证书排查Nginx 开了双向 TLS,却出现 400 No required SSL certificate was sent。换 fullchain 也没用:被检查的可能是客户端。下面用 curl 区分“没带证书”“带了但不可信”“验错信任方向”,不靠关闭验证掩盖故障。
Lsetea19 天前
nginx·https·safari·ssl证书·openssl
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查证书刚部署完,命令行里测着都正常,iPhone 上却打不开——Safari 弹「此连接非私人连接」,详情里写着:“api.example.com”证书名称与输入不匹配。先别删证书重装:它不是“证书坏了”,而是“证书上的名字和访问的地址对不上”。像快递面单写着 A 栋、你却在 B 栋等。按三层查:先对名字(证书名单),再看应答(实发哪张),最后看客户端(为什么有的报、有的不报)。
Lsetea20 天前
nginx·https·ssl证书·openssl·自签证书
OpenSSL快速生成域名证书:含SAN的自签命令、验证与排错给测试环境、内网系统或还没排上 CA 的域名配 HTTPS,最顺手的招是 openssl 自签证书:一条命令、两个文件。但“生成成功”不等于“浏览器不报错”——Safari 可能提示“证书名称与输入不匹配”,Chrome 可能说证书无效。这篇一次讲清生成与“为什么生成完还不生效”。
Lsetea23 天前
https·cdn·ssl证书·openssl·tls
CDN换了SSL证书仍显示旧证书?按边缘节点、SNI和缓存逐层排查最容易让人误判的HTTPS故障是:CDN控制台显示“新证书已部署”,源站目录里的fullchain.pem也换了,但浏览器打开网站,看到的还是旧证书。此时先别急着清缓存,更不要连续reload几遍碰碰运气。证书到底在哪里终止、请求实际落到了哪个边缘节点,往往比源站文件内容更关键。
Lsetea25 天前
nginx·https·ssl证书·openssl·tls
Nginx HTTPS证书域名不匹配:用SAN与SNI定位 ERR_CERT_COMMON_NAME_INVALIDNginx 已经配置了 HTTPS,浏览器却提示 ERR_CERT_COMMON_NAME_INVALID,这类故障通常不是“证书过期”,而是客户端访问的主机名没有出现在服务端实际返回证书的身份列表里。多域名、反向代理和 IPv4/IPv6 并存时,配置看着没问题,返回的却可能是默认站点证书。本文用一个不依赖猜测的顺序,把访问域名、SNI、证书 SAN、Nginx server 块和地址族逐层对上。
bosins1 个月前
powershell·openssl
Windows IIS 配置本地HTTPS 全流程指南:自签名证书 + 端口绑定 + 避坑详解在本地开发或内网服务部署中,经常需要为 IIS 站点配置 HTTPS。虽然网上教程众多,但实际操作时往往会遇到 PowerShell 绑定报错、浏览器拒绝访问、openssl 命令找不到 等连环坑。
Lsetea1 个月前
nginx·https·ssl证书·openssl·私钥
Nginx报SSL_CTX_use_PrivateKey failed:证书与私钥不匹配怎么排查升级证书,把新 fullchain.pem 换进 Nginx,然后 nginx -t,结果没看到熟悉的 “syntax is ok”,反而飘出来一行红字: