Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 对通配符证书使用新的自签名证书_Powershell_Ssl - Fatal编程技术网

Powershell 对通配符证书使用新的自签名证书

Powershell 对通配符证书使用新的自签名证书,powershell,ssl,Powershell,Ssl,我已经找到了答案,但在尝试创建通配符证书时,它似乎不起作用 我已采取以下步骤: 使用Powershell命令将证书添加到我的服务器 New SelfSignedCertificate-DnsName myhostname01,*.myhostname01-CertStoreLocation证书:\LocalMachine\My (为了避免潜在的不安全情况,我对URL进行了轻微的审查) 接下来,我在IIS服务器上的绑定中使用了SSL证书 我用Chrome浏览了这个页面。正如预期的那样,证书被标记为

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

我已采取以下步骤:

  • 使用Powershell命令将证书添加到我的服务器
  • New SelfSignedCertificate-DnsName myhostname01,*.myhostname01-CertStoreLocation证书:\LocalMachine\My
    (为了避免潜在的不安全情况,我对URL进行了轻微的审查)

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

  • 我用Chrome浏览了这个页面。正如预期的那样,证书被标记为不安全

  • 我保存了证书的本地副本,并手动将证书副本添加到我的Chrome可信CA中。但是,该证书仍然不被认可:

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


  • 现在,我正在访问的证书和URL以及在我的主机文件中设置的证书和URL都是相同的。没有拼写错误。我的问题:我使用新的自签名证书是否错误?或者我在其他地方做错了什么?

    SSL通配符证书应该有一个带有通配符的主题,其余的DNS名称应该在主题替代名称中,该名称由DNSName参数提供。我相信下面的例子可以满足您的要求

    例子 结果 工具书类

    对于那些可能会抓住自己头脑中剩下的东西来回答这个问题的人来说,最终对我有用的答案是:


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

    您可以使用代码块而不是图像作为示例代码吗?很难准确阅读您正在执行的操作。我已根据您的请求更改了powershell命令,但无法在代码或文本中准确描述我正在查看的windows。谢谢!但是,我收到错误消息
    找不到与参数名称“Subject”匹配的参数。
    我在Windows Server 2012上,使用IIS8,因此此命令应该可以工作。但事实并非如此!我知道此CmdLet已在WMF 5.0中更改。WMF 5.0可以下载,而我需要它的项目已经停止,我仍然可以在下一个项目中使用它。谢谢您还记得PowerShell使用的版本和操作系统吗?我对NotAfter参数有问题。@aaronR:我认为您对Subject参数也应该有问题。据我所知,NotAfter参数(与Subject参数一样)仅受WS2016/W10版本的cmdlet支持,请参阅:Finally!!我头上没有头发了,但至少它终于起作用了。
    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}