使用现有根证书颁发机构签署证书

Jak*_*ake 5 powershell ssl certificate

我正在尝试为 SQL Server Reporting Services 的不同主机名(别名)设置一些证书,以便我可以在自己的计算机上保护连接以进行测试。我的理解是,这些证书需要由受信任的根证书颁发机构签名(此处解释)。经过一些研究后,我发现了很多有用的信息,这些信息通常可以通过这篇文章进行总结;我找到的信息告诉我如何使用 Powershells New-SelfSignedCertificatecmdlet 创建新证书。

现在我知道如何创建新的根 CA,并且知道如何为由新根 CA 签名的给定主机名创建 SSL 证书。但是,我找不到任何地方解释如何重用现有的根 CA。我希望代码像这样工作:

$rootCA = <# What goes here? #>
$TestSigned = New-SelfSignedCertificate -subjectName "CN=TestSignedByRoot" -Signer $rootCA
Run Code Online (Sandbox Code Playgroud)

每次我想创建证书时是否都应该创建一个新的根 CA?这看起来很疯狂,所以我当然希望事实并非如此。如果你们中的任何人可以提供一些解释和示例代码,我们将不胜感激。

The*_*ian 0

这里你漏掉了一个关键词:可信。不仅仅是您,任何尝试验证证书有效性的计算机都可以这样做。大多数公司都会有一个能够在内部颁发证书的 PKI 解决方案,并将根 CA 的证书通过 GPO 推出到本地计算机证书存储的受信任根文件夹中。根 CA 应该是已经建立的,并且受到将连接到 SQL Server 的计算机的信任。我建议联系您的 IT 或安全部门,询问该公司是否有可用于签名证书的受信任根 CA,或者他们是否可以向您颁发链接到受信任根的证书。

编辑:好吧,我错过了重点。我的理解是“我的机器”是您支持的 SQL 服务器,而不是连接到它的其他计算机。如果您唯一关心的计算机是您自己的计算机,那么这可以归结为:

  1. 创建证书签名证书(证书 A)
  2. 将证书 A 添加到 LocalMachine 证书存储的受信任根文件夹
  3. 使用证书 A 作为签名证书创建自签名证书(证书 B)

完成步骤 1 和 2 后,您可以根据需要多次重复步骤 3 以制作其他证书。您应该只需要 1 个根证书。重要的是根证书受到“客户端”的信任,因此当它连接到 SQL 报告服务并看到证书时,它可以建立到启动该链的根证书的信任链。