这本文介绍了如何申请证书来自非域加入的 Windows 计算机的 AD CS(Active Directory 证书服务)。
我认为相同的原理适用于非 Microsoft 操作系统,并且可以从 OSX 或 Linux 进行相同的注册。
问题
如何在 OSX/Linux 上从 AD CS 请求证书?
或者有人可以告诉我 AD CS 服务如何工作(足够详细)以便我可以开发替代解决方案?
答案1
我意识到这有点过时了,但是现在有一个解决方案,使用证书持有者+塞普塞斯。如果您想自动注册,您可以在 Samba 中配置组策略和证书自动注册(仅适用于 Samba 4.15+)。
对于简单的设置,您可以安装证书持有者和塞普塞斯然后修改 /etc/cepces/cepces.conf 以适应您的环境。对于典型配置,您只需将参数设置server
为 Windows CA 的 DNS 名称。
rpm 规范应该运行一个脚本,将 CA 添加到 certmonger。如果没有,则使用 添加getcert add-ca -c cepces -e /usr/libexec/certmonger/cepces-submit
。
然后您可以申请您的证书,例如:
# getcert request -c cepces -T Machine -I MachineCertificate -k /etc/pki/tls/private/machine.key -f /etc/pki/tls/certs/machine.crt
New signing request "MachineCertificate" added.
答案2
ADCS 注册 Web 服务采用两种通信协议:[MS-XCEP]和[MS-WSTEP](Microsoft 实现的[WS-信任]协议)。
CEP(实现 [MS-XCEP])是一种注册策略服务,用于:
- 提供可供客户端注册的证书模板。
- 提供证书注册服务 (CES) URI
CES(实施 [MS-WSTEP])是一种注册服务,用于:
- 提交证书请求
- 检索颁发的证书
- 提供代表注册 (EOBO) 功能
可能适用相关协议规范(例如[MS-ADTS]和[MS-CERTD])。
我不知道有任何兼容 Linux 操作系统的客户端,但是有一个兼容 Apple MacOS 和 iOS 的模块:http://www.zevainc.com/index.php/productsandtools/licensed-products/item/91-certdeploy
答案3
如何在 OSX/Linux 上从 AD CS 请求证书?
如果您不需要自动执行此操作,则只需使用“Active Directory 证书服务 Web 注册”即可。这是一个简单的小型 Web 应用程序,除其他功能外,它还允许您粘贴任意 CSR。它不关心它们是否来自 Windows 操作系统。
然后,Windows 管理员必须手动批准或拒绝该 CSR,然后找到一种方法向您提供新创建的证书。因此,这仅适用于低容量吞吐量。
答案4
如何在 OSX/Linux 上从 AD CS 请求证书?
CEP 和 CES 是用于 Windows 系统上的手动和自动认证注册的服务。
在 Linux 或类似系统上,AD CS 角色NDES(网络设备注册服务)用来。
本文应该能为您提供有关该服务的良好概述:https://blogs.technet.microsoft.com/jeffbutte/2016/12/16/236/