Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
移除“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记录值,你手动设置到域名下面去,总之不会再直接引入第三方包的方式实现了。