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

Django服务器加载Apple根证书遇OpenSSL 'header too long'错误排查

问题原因及解决方法

错误原因

你遇到的OpenSSL.crypto.Error: [('asn1 encoding routines', '', 'header too long')]错误,核心是证书文件格式与指定的解析类型不匹配:
你代码中使用FILETYPE_ASN1(对应DER二进制格式证书),但实际下载的AppleRootCA-G3.cer大概率是PEM文本格式(文件内容包含-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----标记),OpenSSL用DER格式解析PEM文件时就会触发ASN.1编码头过长的错误。

解决方法

方法1:匹配证书格式修改解析类型

打开AppleRootCA-G3.cer文件查看内容:

  • 若文件是带-----BEGIN CERTIFICATE-----的文本格式,将代码中的FILETYPE_ASN1替换为FILETYPE_PEM:
from OpenSSL.crypto import load_certificate, FILETYPE_PEM

def load_root_certificates():
    with open("AppleRootCA-G3.cer", "rb") as in_file:
        data = in_file.read()
    return load_certificate(FILETYPE_PEM, data)
  • 若文件是纯二进制无文本标记的DER格式,先确认文件未损坏,损坏则重新下载证书。

方法2:确保证书文件完整有效

若格式匹配仍报错,大概率是证书文件在下载过程中损坏,重新获取官方的AppleRootCA-G3证书即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:52:08