![给定自签名的 CRT 和 KEY 文件,我可以将它们安装到 Windows Active Directory 内部网设置中以供所有机器使用吗?](https://linux22.com/image/1574346/%E7%BB%99%E5%AE%9A%E8%87%AA%E7%AD%BE%E5%90%8D%E7%9A%84%20CRT%20%E5%92%8C%20KEY%20%E6%96%87%E4%BB%B6%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%B0%86%E5%AE%83%E4%BB%AC%E5%AE%89%E8%A3%85%E5%88%B0%20Windows%20Active%20Directory%20%E5%86%85%E9%83%A8%E7%BD%91%E8%AE%BE%E7%BD%AE%E4%B8%AD%E4%BB%A5%E4%BE%9B%E6%89%80%E6%9C%89%E6%9C%BA%E5%99%A8%E4%BD%BF%E7%94%A8%E5%90%97%EF%BC%9F.png)
我正在研究如何在本地 Active Directory 内联网上设置 Zulip 聊天服务器。聊天服务器需要 SSL 证书,我可以从 OpenSSL 生成 CRT 和 KEY 文件。
但是,我希望将这些文件安装到 Active Directory 中,以便 Active Directory 中的所有用户和机器都会自动获取它们,并且不会收到必须接受未知证书的警告。
我曾尝试用 Google 搜索此内容,但要么是我的搜索技巧不够好,要么就是我使用了错误的术语,从而得到了错误的内容。
答案1
是的,可以通过组策略部署 CA 证书 –Windows 设置 → 安全设置 → 公钥策略 → 受信任的根证书颁发机构。
但由于您已经拥有 Active Directory,我强烈建议您安装证书服务组件并创建一个实际 CA您可以从中颁发单独的服务器证书 - 这样您就可以继续添加内部服务,并且只需要为所有内容部署一个证书,而不是数十个自签名证书。
答案2
您无法使用组策略分发证书和(私钥)。整个想法毫无意义,因为私钥按定义是私有的,因此不应共享。
但是,您可以通过组策略分发证书。根据 Windows 的版本,您可以将证书发送到根存储、中间存储或其他存储。
您需要做的是创建一个认证机构(使用 OpenSSL、Microsoft Active Directory 证书服务 (ADCS) 或其他工具)并使用它来签署来自每个客户端的证书签名请求。
正如@grawity所说,您使用的是 Windows,因此您也可以使用 ADCS 来执行此操作。您甚至可以对其进行配置,以便所有客户端自动注册证书,而无需任何用户干预。
我的建议是:
- 使用 Microsoft ADCS 安装离线根 CA;
- 使用 Microsoft ADCS 安装在线颁发 CA;
- 配置组策略将根CA证书分发给所有设备;
- 配置组策略以启用自动注册,强制所有设备从颁发 CA 请求自己的证书;
请记住,糟糕的安全措施比没有安全措施更糟糕。在深入研究 PKI 之前,请先做好研究。