aapanel无法手动添加acme证书|提示TypeError: ECPrivateKey.sign() takes 2 positional arguments but 3 were given

linux admin 3周前 (11-22) 92次浏览 0个评论

介绍

小白转用aapanel有一段时间了,之前一直是直接在面板申请的证书,前几天有个站点临时用一下,就想着直接用另外一台机器上已经用acme脚本申请的证书,复制粘贴私钥和证书,然后就出现错误:TypeError: ECPrivateKey.sign() takes 2 positional arguments but 3 were given

问题原因

aapanel的日志里说的很清楚,ECPrivateKey.sign() 方法的参数数量不匹配,接收的参数数量不匹配:代码传入了 3 个参数,但该方法只接受 2 个。

acme脚本现在默认是用ECC 类型的私钥,而aapanel默认是RSA类型的私钥,所以我们有两个解决方案:

  1. 使用RSA类型私钥签发证书
  2. 修改aapanel的ssl_info.py文件

解决方案

使用RSA类型私钥签发证书

这个比较简单,我们在使用acme脚本签发证书时,在末尾加上 --keylength 2048即可

修改aapanel的ssl_info.py文件

找到报错位置 /www/server/panel/class/ssl_info.py,修改第 299 行,原文件为:

signature = private_key.sign(data, signature_algorithm, additional_argument)

我们将其修改为:

signature = private_key.sign(data, signature_algorithm) # 去掉额外参数

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:aapanel无法手动添加acme证书|提示TypeError: ECPrivateKey.sign() takes 2 positional arguments but 3 were given
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址