【问题标题】:Using New-SelfSignedCertificate for wildcard certificates将 New-SelfSignedCertificate 用于通配符证书
【发布时间】:2016-10-10 06:37:11
【问题描述】:

我找到了this 的答案,但是在尝试创建通配符证书时它似乎不起作用。

我已经采取了以下步骤:

  1. 使用 Powershell 命令向我的服务器添加了证书。

New-SelfSignedCertificate -DnsName myhostname01,*.myhostname01 -CertStoreLocation Cert:\LocalMachine\My (我略微审查了 URL 以避免潜在的不安全情况)。

  1. 接下来,我在我的 IIS 服务器上的绑定中使用了 SSL 证书。

  2. 我在 Chrome 中访问了该页面。正如预期的那样,证书被标记为不安全。

  1. 我保存了证书的本地副本,并手动将证书的副本添加到我的 Chrome 受信任的 CA。但是,证书仍然无法识别:

  2. 证书的详细信息如下所示:

现在,我正在访问并在我的主机文件中设置的证书和 URL 都是相同的。没有拼写错误。我的问题:我使用 New-SelfSignedCertificate 错了吗?还是我在其他地方做错了什么?

【问题讨论】:

  • 您可以在示例代码中使用代码块而不是图像吗?很难准确地阅读你在做什么。
  • 我已根据您的要求更改了 powershell 命令,但我无法在代码或文本中准确描述我正在查看的窗口。

标签: powershell ssl


【解决方案1】:

对于那些可能会在这个问题上固执己见的人来说,最终对我有用的答案是:

New-SelfSignedCertificate -Subject *.my.domain -DnsName my.domain, *.my.domain -CertStoreLocation Cert:\LocalMachine\My -NotAfter (Get-Date).AddYears(10)

【讨论】:

  • 虽然我需要它的项目已经停止,但我仍然可以将它用于我的下一个项目。谢谢!
  • 您还记得您用于 PowerShell 的版本和操作系统吗? NotAfter 参数有问题。
  • @aaronR:我认为您的主题参数也应该有问题。据我所知,NotAfter 参数(就像 Subject 参数一样)仅受 WS2016 / W10 版本的 cmdlet 支持,请参阅:technet.microsoft.com/de-at/library/hh848633(v=wps.640)
  • 终于!!我头上没有头发了,但至少它终于可以工作了。
【解决方案2】:

SSL 通配符证书应该有一个带有通配符的主题,其余的 DNS 名称应该在主题备用名称中,该名称由 DNSName 参数提供。我相信下面的例子会做你想做的。

示例

New-SelfSignedCertificate -Subject *.myhostname01  -DnsName myhostname01 -CertStoreLocation Cert:\LocalMachine\My 
dir Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq 'CN=*.myhostname01'} | ForEach-Object {
    [PSCustomObject] @{
        Subject = $_.Subject
        SAN = $_.DnsNameList
    }
}

结果

Subject           SAN
-------           ---
CN=*.myhostname01 {myhostname01}

参考文献

【讨论】:

  • 谢谢!但是,我收到错误消息A parameter cannot be found that matches parameter name 'Subject'. 我在 Windows Server 2012 上,使用 IIS8,所以这个命令应该可以工作。但事实并非如此!
  • 我知道这个 CmdLet 在 WMF 5.0 中已更改。 WMF 5.0 可供下载here
猜你喜欢
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 2014-12-30
  • 2020-06-07
  • 1970-01-01
相关资源
最近更新 更多