Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.5.1 #141

Merged
merged 1 commit into from
Jul 3, 2024
Merged

v2.5.1 #141

merged 1 commit into from
Jul 3, 2024

Conversation

Jinnrry
Copy link
Owner

@Jinnrry Jinnrry commented Jul 3, 2024

移除“SSL证书申请时自动DNS记录验证方式”

1、SSL证书申请时自动DNS记录验证方式是干什么的?

之前好几个ISSUSE提到,服务器没有空闲的80端口使用,导致PMail无法自动签发SSL证书。因此在2.5.0版本中实现了使用DNS记录验证的方式完成证书签发。

2.5.0版本实现使用了最最简单易用的方式。用户只需要提供域名服务商的API密钥,PMail自动调用域名服务商的API,全自动添加域名的DNS记录、完成证书签发后自动删除域名相关记录。做到了最简单易用的证书签发,全程用户只需要提供域名服务商的API密钥即可

2、为什么要移除这么方便的验证方式?

因为PMail实现这个功能引用了github.com/go-acme/lego/v4/certificate 这个包的DNS挑战实现。这个包里面包含了目前世界上绝大多数域名服务商的API调用。

正是由于这个包实现了世界上绝大多数域名服务商的API调用,因此PMail也可以直接支持使用任一域名服务商的密钥自动签发SSL证书。

但是!支持域名服务商丰富是优点也是缺点。这个包实现API调用的方式基本上都是直接引用域名服务商的SDK。比如和Google域名API交互,这个包直接使用了Google的SDK,和阿里云交互,这个包使用阿里云的SDK。这个实现本身没什么问题,但是由于支持的服务商太多了,导致项目里面引入了上百个服务商的SDK。从v2.5.0的PR diff里面也能看到,go.mod文件瞬间多了几百个间接引用包。

这样大量的SDK包引入,导致最终编译的二进制文件直接从v2.4.8的14M变到了v2.5.0的140M。二进制文件体积增加了近10倍。

回到主题,为什么要移除这个功能。PMail追求最极致的资源占用,上述的实现方式过于浪费资源,因此移除了这个功能。

3、如果我需要DNS记录验证签发SSL证书怎么办?

请移步achme.sh之类的证书签发工具。使用其他证书签发工具签发证书以后在手动设置到PMail里面。

4、这个功能未来会回来吗?

可能会吧,要么自己实现每个域名供应商的api调用,用最轻量的方式实现,要么PMail给你DNS记录值,你手动设置到域名下面去,总之不会再直接引入第三方包的方式实现了。

@Jinnrry Jinnrry merged commit 056036e into master Jul 3, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant