3 个域控制器的一个 SSL 证书

col*_*sen 3 ldap ssl-certificate windows-server-2008-r2

如何为 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 获取的软件的现有工具来完成此操作。

Til*_*ave 5

实际上不需要对 OpenSSL 使用任何 GUI 包装器,它们从不包含所有选项并且不会向库添加任何值。启动 OpenSSL 控制台没有错,点击?列出所有命令并在线查找您可能需要的说明,恕我直言。;)

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

set OPENSSL_CONF=[path & file name of your openssl.cnf file]
Run Code Online (Sandbox Code Playgroud)

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

echo subjectAltName=DNS:dc1.example.com,DNS:dc2.example.com,DNS:dc3.example.com > example.com.cnf
Run Code Online (Sandbox Code Playgroud)

或者你可以用记事本创建一个新的配置文件,无论如何。它只需要其中的这一行:

subjectAltName=DNS:dc1.example.com,DNS:dc2.example.com,DNS:dc3.example.com
Run Code Online (Sandbox Code Playgroud)

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

genrsa -out example.com.key 1024
req -new -key example.com.key -out example.com.csr
Run Code Online (Sandbox Code Playgroud)

按照要求输入所有必需的数据。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
Run Code Online (Sandbox Code Playgroud)

就是这样。你应该有你的新example.com.crtexample.com.key以及example.com.csr文件准备在你的OpenSSL的文件夹中去,并与其他配置,我们设置更新。您可以检查您的证书是否包含我们的 DNS 名称(记事本即可,这些值以明文形式显示)。

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

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

干杯!