为何使用SeleniumWire时出现OpenSSL.crypto.Error: [(‘PEM routines’,’’,’no start line’)]错误?
错误原因分析:OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]
错误信息
OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')].
涉事代码
from seleniumwire import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())
这个错误是SeleniumWire特有的,根源在于它的核心工作机制——拦截HTTPS请求需要依赖CA证书,而普通Selenium不需要处理证书拦截逻辑,因此不会触发该问题。具体原因可分为以下几种:
- 证书生成失败:SeleniumWire首次启动时,会自动在用户目录下创建
.seleniumwire文件夹,并生成CA证书文件(ca.crt、ca.key)。如果生成过程中遇到权限不足、磁盘空间不够、系统OpenSSL环境异常等情况,会导致证书文件损坏或未正确生成,后续读取时就会抛出PEM格式错误。 - 旧损坏证书残留:之前运行SeleniumWire时生成的CA证书已损坏(比如文件内容为空、格式被篡改),再次启动时程序尝试读取这些无效证书,引发错误。
- 权限不足:程序没有权限访问
.seleniumwire目录,既无法生成新证书,也无法读取已存在的证书文件,导致证书加载失败。 - 配置路径错误:如果手动修改过SeleniumWire的证书存储路径,指向了非PEM格式的文件,或者路径本身不存在,也会触发该错误。
快速验证方法
可以检查用户目录下的.seleniumwire文件夹,查看其中的ca.crt和ca.key文件:
- 正常的PEM格式证书开头应包含
-----BEGIN CERTIFICATE----- - 私钥文件开头应包含
-----BEGIN RSA PRIVATE KEY-----
如果文件为空、内容缺失或格式不符,即可确认是证书问题导致的错误。
内容的提问来源于stack exchange,提问作者GORGONZOLA
相关产品推荐
相关产品推荐

