如何为 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
加载命令):req
OPENSSL_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.crt
、example.com.key
和example.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 中,因此除了启用功能/角色之外,您不需要任何其他现有服务。