宝塔申请证书错误,提示 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘
遇到"module 'OpenSSL.crypto' has no attribute 'sign'"错误时,通常是由于pyOpenSSL版本兼容性问题导致的。以下是解决方案:
通过SSH连接到服务器,执行以下命令安装指定版本的pyOpenSSL:
btpip install pyOpenSSL==24.2.1-U
然后重启宝塔面板。
如果问题仍然存在,可以尝试更新所有依赖:
btpip install -r /www/server/panel/requirements.txt && bt restart
这能解决因依赖关系混乱导致的问题。
对于Alibaba Cloud Linux 3.2104 LTS系统用户,上述方法特别有效,而CentOS 7用户也报告通过此方法解决了问题。
另一种解决方案是使用强制安装命令:
btpip install pyOpenSSL -I
这可以覆盖现有安装并修复损坏的文件。
确保私钥加载正确,使用load_privatekey方法加载PEM格式私钥后再调用sign方法。
如果问题持续,检查是否安装了多个版本的cryptography库,建议移除冲突版本后重新安装。
该错误通常会在执行SSL证书申请时出现,特别是在使用宝塔面板的文件验证或DNS验证方式时。按照上述步骤操作后,SSL证书申请功能应该能恢复正常。