记录宝塔申请SSL证书时报错“Invalid version. The only valid version for X509Req is 0”的解决方法
今天发现权益商城网站的ssl证书到期了,以前是可以每次免费申请一年的,现在都只能3个月了,到期后需要再次申请,应该就是鼓励更多人购买收费证书吧,不想麻烦的人是会考虑购买的,像我们这种影响不大也不怕麻烦的人其实免费证书就够用了。以前我都喜欢在腾讯云上申请免费的ssl证书,曾几何时腾讯云一个账号是可以免费申请50张证书的,后来改为了10个,这次登录发现居然又改为了50个了,你不让别人用别人就跑到其他地方用了,何必限制人呢?改来改去不麻烦吗?我现在也不喜欢去腾讯云申请了,因为我发现在宝塔面板申请更快更方便,还能实现自动续签。不过今天遇到了掉问题但是都顺利解决了,记录一下以便下次使用!
宝塔面板在申请SSL证书时,可能会遇到报错:“Invalid version. The only valid version for X509Req is 0”,这个错误通常是由于服务器端的OpenSSL版本与宝塔面板所使用的版本不兼容导致的,下面将详细解释这个错误的原因以及如何处理这个报错。
错误原因
宝塔面板在生成SSL证书请求时,默认使用了X509Req的版本2,某些服务器端的OpenSSL版本仅支持版本0的X509Req,这就导致了版本不匹配的问题,从而出现上述错误。
解决方案
针对这一错误,有两种常见的解决方案:
第一种方法、修改宝塔面板的代码:
找到宝塔面板的acmev2.py
文件,通常这个文件位于/www/server/panel/class/
目录下。
打开acmev2.py
文件,搜索X509Req.setversion(2)
这一行代码。
将X509Req.setversion(2)
修改为X509Req.setversion(0)
。
保存文件并退出编辑器。
重启宝塔面板服务,让修改生效,可以通过执行bt restart
命令来重启面板服务。
很多人不知道哪里重启宝塔面板,看下图:
第二种方法、升级服务器端的OpenSSL版本(此方法不推荐)
服务器端升级对应的Openssl版本。(该方式升级前建议对服务器做一下快照备份,不推荐使用此方法)
1、终端依次运行如下命令:
btpip install pyOpenSSL==22.1.0
btpip install cffi==1.14
2、重启宝塔面板服务
3、解决
通过以上步骤,通常可以解决宝塔面板在申请SSL证书时遇到的“Invalid version. The only valid version for X509Req is 0”的错误。