宝塔面板,集成了Let’s Encrypt免费SSL证书。一键申请快捷安装,无需其他操作。一直都很顺畅。刚好一个网站的SSL证书到期,搬家至新的云主机后不想再续费了,就申请Let’s Encrypt证书吧,以节约成本。
谁知出现一个大错误。从来没见过的“Invalid version. The only valid version for X509Req is 0.”。如下:
有点儿摸不着头脑,一筹莫展之际,却又找到了答案。原来开始用的搜狗还是360,没有带invalid关键词去搜索,后来换为百度搜索:宝塔 SSL invalid,终于找到了答案。并实践,立马申请Let’s Encrypt免费SSL证书成功。
以下是具体的解决方法,摘录如下:
通过宝塔面板的文件,找到文件目录:/www/server/panel/class下面的acme_v2.py文件。
双击文件进入编辑,并通过搜索找到X509Req.set_version(2)代码段 ,将其改为X509Req.set_version(0)
修改完成之后保存文件,并重启宝塔面板。重启面板即可,不需要重启主机。
来自:https://blog.1314.cool/post/70.html
仅仅就是一个改动,改2为0。就成功了!神奇!
另一篇博文说出的其中的原因:
宝塔面板申请ssl证书报错 Invalid version. The only valid version for X509Req is 0.的原因是由于服务器端使用了不兼容的 OpenSSL 版本导致的,服务器端的X509Req 版本只支持 0,而宝塔这边默认的版本为2。
此外,还有一种解决方法,即是服务器端升级对应的Openssl版本。
btpip install pyOpenSSL==22.1.0
btpip install cffi==1.14
然后重启面板服务(不用重启服务器,执行bt 1 重启面板服务加载新的配置即可)。
原文参见:https://zhuanlan.zhihu.com/p/634565620
由于目前问题已经解决,这种方式甲爸就不去实践了。作为参考即可。看完此文有兴趣的,可以好好整一整。
6.16日发现宝塔面板已有8.0版本。采用升级OPENSSL的方式,解决了这个问题。那使用8.0及后续版本,这个问题出现的机率应该极低。