我有一个程序可以很好地获取证书信息,但仅适用于Windows机器。我需要它适用于UNIX和大型机。我将证书添加到Windows受信任的root cert auth,并在那里也有root证书。我没有在这里生成自己的证书,因为我认为不需要。
它在执行身份验证的最后一行爆炸,错误
根据验证程序,远程证书无效。
任何想法要检查什么?
$certpath = "C:\Certdir\Certificates\xxx.cer"
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($certPath)
[System.Security.Authentication.SslProtocols]$protocol = "TLS"
$certcol = New-Object System.Security.Cryptography.X509Certificates.X509CertificateCollection
$certcol.Add($cert)
$socket = New-Object Net.Sockets.TcpClient($computerName, $port)
$stream = $socket.GetStream()
$sslStream = New-Object System.Net.Security.SslStream $stream,$false
$sslStream.AuthenticateAsClient($computerName,$certcol,$protocol,$false)