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

使用Python Requests携证书调用API遇ssl.SSLError: [SSL] PEM lib错误求助

解决Python Requests调用API时的ssl.SSLError: [SSL] PEM lib错误

问题原因

你遇到的ssl.SSLError: [SSL] PEM lib错误,核心原因有两个:

  • .cer格式证书通常是DER二进制格式,而Requests的cert参数要求使用PEM文本格式的证书文件。
  • cert参数的用法有误:当仅提供证书(无对应私钥)时,应直接传入证书路径字符串,而非(证书路径, None)的元组形式(元组格式用于同时指定证书和私钥文件)。

解决方案

1. 将DER格式的.cer证书转换为PEM格式

使用OpenSSL命令将证书转换为PEM格式:

openssl x509 -inform der -in hawkeyeCertificate.cer -out hawkeyeCertificate.pem

转换后,确保新生成的hawkeyeCertificate.pem文件被正确复制到服务器的脚本目录中。

2. 修正Requests代码中的cert参数用法

修改脚本中的证书路径和cert参数:

import os
import requests

script_directory = os.path.dirname(os.path.abspath(__file__))
# 改为使用转换后的PEM格式证书
certificate_file_path = os.path.join(script_directory, 'hawkeyeCertificate.pem')
# 直接传入证书路径字符串,而非元组
response = requests.get(is_epp_api_end_point, headers=access_token, params=params, cert=certificate_file_path)

3. 验证证书文件完整性

确保Jenkins复制到服务器的证书文件未损坏,可通过以下命令验证:

# 验证原.cer文件(DER格式)
openssl x509 -inform der -in hawkeyeCertificate.cer -text -noout
# 验证转换后的PEM文件
openssl x509 -in hawkeyeCertificate.pem -text -noout

如果命令能正常输出证书的详细信息,说明文件完整有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:38:13