空字典不能直接解释为对端没有给证书。按Python 3.14的SSLSocket.getpeercert说明,在binary_form=False且收到证书的情况下会返回字典;证书没有被验证时,字典为空。没有对端证书返回None,握手尚未完成则抛出ValueError。这几个返回分支表达的条件不同,应先核实际类型和调用阶段。

适用:确认返回值确实来自这个接口
本题针对台式电脑上实际采用Python标准库ssl的程序,不把浏览器证书窗口、其他库的空对象或日志中的空字符串算作同一返回。应记录解释器版本、binary_form参数及原始错误类型。不要只留界面上“没有内容”的截图,就跳过程序是否完成握手的核对。
观察:先按类型分支,再核验证记录
若确实得到空字典,核对原连接的验证配置和处理记录,不先宣称对端没有证书。若返回None,则按无对端证书这一条件继续查原连接;若抛ValueError,则先回到握手阶段,而非反复读取字段。不要把这三种记录合并为一个“获取失败”计数,否则后续难以判断问题发生在哪里。
默认字典结果和原始编码材料也要分开。采用binary_form=True取得DER材料,不等于已建立信任,也不能代替对应连接的验证结果。另一方面,有字典字段并不能替用户证明整个业务已经成功;应用还要按照自己的受支持流程处理结果。本题没有对实际网站作证书检查,也未判定任何客户证书安全或失效。
风险与下一步:保留分支记录后核验证状态
为了让日志出现subject而更改信任配置,可能把原问题变成另一种安全条件。先保存脱敏的返回类型、错误和阶段,交由软件提供方核对;不要提交私钥、账号或完整业务通信。保定竞秀区台式电脑用户可向电脑快修网400-877-9605说明上述信息,确认电脑侧检查范围。平台提供信息展示与第三方维修对接,具体地址、支持能力和安排须当次确认。