我对 ACME 还很陌生,但对 ADCS(Active Directory 证书服务)已经有一定经验。
我们将 ADCS 用于满足所有内部需求:客户端身份验证、VPN、EFS 等,也用于颁发 TLS 证书。
现在,您可能已经听说,从 9 月 1 日起,Apple 将不再承认有效期超过 1 年的证书;这会给我们有限的网站管理员资源带来一些压力(更糟糕的是,每个部门都有自己的网站管理员)。我想也许最简单的方法是使用 ADCS 实现内部 ACME,但经过一番谷歌搜索后,我不得不承认我还没有找到可以做到这一点的解决方案。是我的谷歌搜索技巧太差,还是根本没有这样的软件?
答案1
我已经能够通过 GitHub 项目弥补这一差距。
https://github.com/grindsa/acme2certifier
它为那些本身不能很好地支持 ACME 的 CA 服务器提供 ACME 代理服务。通过 Web 注册服务,与 ADCS 的集成非常简单。您只需要一个服务帐户和您想要使用的 ADCS 上的证书模板。
该项目甚至支持外部账户绑定,以便您可以验证对 ACME 代理的请求。
答案2
自 9 月 1 日起,Apple 将不再承认有效期超过 1 年的证书
虽然确实如此,但它仅适用于通过操作系统附带的一组公开信任的根 CA 颁发的证书。您的内部 CA 可以继续颁发多年期证书,而不会出现任何问题。以下是支持文章直接从 Apple 处获取相关信息。
如果你还在寻找可以与 ADCS 交互的 ACME 服务器,Github 上有一个项目应该可以实现。但我还没有用过,所以不知道它有多完整。
https://github.com/glatzert/ACME-Server-ACDS
Grant 的回答是关于建立一个独立的 ACME 兼容 CA(它是您内部根的子 CA)也是可行的,并且实际上可能会更容易,具体取决于您的环境。
答案3
Microsoft ADCS 本身不支持 ACME,而且我不知道有任何第三方连接器将 ACME 与 ADCS 集成。
Microsoft ADCS 支持使用 SOAP WS-* 传输的注册 Web 服务,并在两个协议规范中定义:[MS-XCEP]和[MS-WSTEP]。
在内部环境和外部环境(使用注册 Web 服务时为工作组)中,可以使用证书自动注册功能来执行初始证书配置和自动证书续订。我撰写了一份关于证书自动注册如何工作的技术白皮书:Windows Server 2016 中的证书自动注册。该博客文章包含可下载该文档副本的链接。
答案4
据我所知,有没有什么好的方法可以通过 ACME 从内部 Microsoft 证书颁发机构直接获取证书。
但是您可以运行自己的 ACME 服务器来颁发证书。它的签名证书可以由您的根证书签名。因此,您的所有客户都会信任它颁发的证书。有几种 ACME 服务器可供选择。