powershell - 使用现有的根证书颁发机构签署证书
问题描述
我正在尝试为 SQL Server Reporting Services 的不同主机名(别名)设置一些证书,以便我可以保护自己机器上的连接以进行测试。我的理解是这些证书需要由受信任的根证书颁发机构签名(在此处解释)。在做了一些研究之后,我发现了很多有用的信息,这些信息通常可以通过这篇文章进行总结;我找到的信息告诉我如何使用 Powershells New-SelfSignedCertificate
cmdlet 创建新证书。
所以现在我知道如何创建一个新的根 CA,并且我知道如何为给定的主机名创建一个 SSL 证书,该证书由新的根 CA 签名。但是,我找不到任何解释如何重用现有根 CA 的地方。我希望代码像这样工作:
$rootCA = <# What goes here? #>
$TestSigned = New-SelfSignedCertificate -subjectName "CN=TestSignedByRoot" -Signer $rootCA
每次我想创建证书时,我是否应该只创建一个新的根 CA?这看起来很疯狂,所以我当然希望不是这样。如果你们中的任何人都可以提供一些解释和示例代码,我们将不胜感激。
解决方案
要从具有已知哈希的证书存储中获取证书:
$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"}
推荐阅读
- c# - 如何逐行读取文件并打印到文本框c#
- dart - 为什么flutter中的open_file没有打开我的应用程序中的任何文件?
- javascript - 如何检测使用 window.open() 打开的窗口关闭事件
- javascript - 使用 underscore.js 返回子值最大的数组索引
- android - 在相对布局中向芯片组添加水平滚动
- javafx-11 - 在 Apache Netbeans 10 中创建 JavaFX11 应用程序时出错
- php - 简单的 PHP 重定向脚本不起作用。特别来自 geoplugin.net。有什么建议吗?
- unity3d - 在 Unity 的顶点着色器中丢弃顶点
- xamarin.forms - Plugin.Messaging.EmailMessageBuilder.withattachemnt 的附件抛出异常错误
- javascript - js:如何从二维数组中过滤掉重复项?