首页 > 解决方案 > 使用现有的根证书颁发机构签署证书

问题描述

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

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

$rootCA = <# What goes here? #>
$TestSigned = New-SelfSignedCertificate -subjectName "CN=TestSignedByRoot" -Signer $rootCA

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

标签: powershellsslcertificate

解决方案


要从具有已知哈希的证书存储中获取证书:

$rootCa = ( Get-ChildItem -Path cert:\LocalMachine\My\EEDEF61D4FF6EDBAAD538BB08CCAADDC3EE28FF )

要查看我的商店中有哪些证书:

Get-ChildItem -Path cert:\LocalMachine\My

要按主题名称获取证书,请使用Where-Object检查主题属性:

$rootCa = Get-ChildItem -Path cert:\LocalMachine\My | Where-Object {$_.Subject -eq "CN=My Awesome Root CA"}

推荐阅读