一个 SSL 证书适用于 3 个域控制器

一个 SSL 证书适用于 3 个域控制器

如何为 Windows 域 EXAMPLE.COM 的三个域控制器(dc1.example.com dc2.example.com dc3.example.com)生成自签名(稍后为真实证书的 CSR)SSL 证书,以供 LDAP 使用

我认为,主题应该是 EXAMPLE.COM,其中三个主题备用名称是每个 DC 的 DNS 名称。

我如何最好地使用 openssl 来生成此证书,并且绝对不需要安装证书服务?

编辑:

额外的要求是仅使用 RHEL 6、Windows 2008 R2 内置的现有工具或可直接从 Microsoft 获得的软件来完成此操作。

答案1

实际上,无需使用任何 GUI 包装器来包装 OpenSSL,它们从不包含所有选项,也不会给库增加任何价值。在我看来,启动 OpenSSL 控制台、列出所有命令?并在线查找您可能需要的命令的说明并没有什么问题。;)

首先要确保你openssl.cnf的 openssl 安装文件夹中有一个有效文件。如果你缺少此文件,可以从以下位置下载这里将此文件放在您的 openssl 路径中,并设置所需的环境变量以指向它:

set OPENSSL_CONF=[path & file name of your openssl.cnf file]

您还需要一个列出域控制器的附加配置文件。最简单的方法是在新文件中回显您的列表:

echo subjectAltName=DNS:dc1.example.com,DNS:dc2.example.com,DNS:dc3.example.com > example.com.cnf

或者你可以用记事本创建一个新的配置文件,随便什么都可以。它只需要其中这一行:

subjectAltName=DNS:dc1.example.com,DNS:dc2.example.com,DNS:dc3.example.com

然后启动 openssl 控制台(openssl.exe)并使用这两个配置文件创建您的自签名证书(将从我们之前设置的环境变量中自动openssl.cnf加载命令):reqOPENSSL_CONF

genrsa -out example.com.key 1024
req -new -key example.com.key -out example.com.csr

根据提示输入所有必需数据。A challenge password []如果此证书将在 Web 服务器上使用,您可能希望跳过输入密码短语 ( ),这样就不需要在每次重新启动时都输入密码。在这种情况下,只需将该字段留空即可。

我们快完成了。现在我们只需要生成证书并将其传递给其他配置文件以包含我们的 DNS 别名(或者在您的情况下是所有三个域控制器):

x509 -req -days 365 -in example.com.csr -signkey example.com.key -text -extfile example.com.cnf -out example.com.crt

就是这样。您应该已将新的example.com.crtexample.com.keyexample.com.csr文件准备好放入 openssl 文件夹中,并使用我们设置的附加配置进行更新。您可以检查您的证书是否包含我们的 DNS 名称(记事本即可,这些值是明文形式)。

显然,您可以更改这些值以反映您的需求,这只是一个示例,使用您自己的示例值。如果您不想启动 OpenSSL 控制台,那么您也可以从系统控制台运行所有这些命令,在任何命令之前使用 调用 OpenSSL.exe openssl。这完全等同于打开 OpenSSL 控制台。

希望这就是你想做的,不要犹豫,在评论中寻求澄清,

干杯!

答案2

假设单个 DC 无法处理 LDAP over SSL 需求,并且 SASL 不是一种选择。

如果您想要这样的自签名 SSL 证书,您可能需要此处的 Selfssl7:http://blogs.iis.net/thomad/archive/2010/04/16/setting-up-ssl-made-easy.aspx

它应该能够创建您所寻找的东西。

答案3

如果没有该框架,您将缺少证书吊销列表 (CRL),并且您仍然需要一种方法来安装受信任的根 CA。因此,如果没有该框架,您可能会遇到困难。

证书服务内置于 Windows 2008 中,因此除了启用功能/角色之外,您不需要任何其他现有服务。

相关内容