我所在的公司正在考虑使用 Windows Active Directory 和证书颁发机构。但是,我们了解到了一些问题,并且对此有些担忧。因此,我们正在考虑使用 OpenSSL 生成证书,然后使用 Active Directory 分发证书。我们希望尽可能地自动化该过程。我们希望它的工作方式如下:
- 我们将用户添加到我们的域中。
- 活动目录发现添加了新用户(或计算机)。
- 然后,Active Directory 向 OpenSSL 发送请求以创建证书,并传递用户的名字和姓氏。这就是我们目前用来创建所需文件的方法,以便我们可以轻松找到它们。
- OpenSSL 生成证书。
- OpenSSL 将它们放在一个目录中,并将密钥返回给 Active Directory。
- 然后,Active Directory 会在计算机上安装证书。
因此,我们所要做的就是创建用户。我的问题是:这是否可能?我们如何才能做到这一点?
答案1
一切皆有可能(好吧,大多数事情都是可能的)。至于是否应该这样做,则是另一个问题。
如果有更合适的工具可以完成这项工作,为什么还要使用 OpenSSL。OpenSSL 是一种用于测试和试验 X.509 证书的工具,并非用于真正的 CA。手册页甚至指出:
ca 实用程序最初是作为如何在 CA 中执行操作的示例。它本身不应被用作完整的 CA
考虑到以上情况,只需在几台 Windows 服务器上安装 Active Directory 证书服务 (ADCS)。安装离线根 CA 并使用它来向在线企业颁发 CA 颁发证书。将后者安装在专用于该角色的服务器上 - 不要共享 - 这样您就可以严格控制访问。
可以配置颁发 CA 向 AD 林中的任何计算机或用户颁发证书。如果您要求,它甚至会自动续订证书。这比您的方案要简单得多,而且更安全,因为它是专门为此目的编写的,并且会记录事件以及在您要求时强制执行多用户操作。
互联网上有很多关于安装 ADCS 的资源。有些资源至少值得怀疑,而有些资源则非常好。尽量只使用信誉良好的网站,例如 Microsoft 自己的网站,这样就不会出错。