HTTPS 到 Windows VM:在 VM 上查找/生成证书?

HTTPS 到 Windows VM:在 VM 上查找/生成证书?

我正在针对服务所有者提供的 Windows VM 测试 REST 服务。我可以通过 RDP 以管理员级别访问 VM。

测试设置是修改运行测试的机器上的 hosts 文件,将 service.location.net 指向虚拟机的 IP,然后执行 POST 以https://service.location.net/endpoint

我的问题是,由于发送机器无法建立有效的 https 连接,因此 https 连接被拒绝。

我可以通过从代码中覆盖它来在我的概念验证代码中欺骗它,但这不会影响下一级的验证/集成。

如何在 Windows VM 上查找或生成证书,以及如何在将 POST 到 VM 的测试计算机上导入/安装该证书?

答案1

您可以使用 Powershell 在虚拟机上生成证书:

新自签名证书

第一个命令将创建一个自签名证书,存储在机器的个人存储中。

$cert = New-SelfSignedCertificate -DnsName "service.location.net" -CertStoreLocation "cert:\LocalMachine\My"

然后,此命令将导出 c:\temp 中的证书(受密码保护)

导出-Pfx证书

Export-PfxCertificate $cert -Password (ConvertTo-SecureString -String "PASSWORD" -AsPlainText -Force) -FilePath c:\temp\cert.pfx

最后,您必须在测试机器上导入该证书,例如使用以下命令:

导入 PfxCertificate

Import-PfxCertificate -FilePath "C:\temp\ExportedCert.pfx" -CertStoreLocation cert:\LocalMachine\root -Password (ConvertTo-SecureString -String "PASSWORD" -AsPlainText -Force)

答案2

https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-certificates-point-to-site

按照此 Microsoft 支持帖子了解如何在 Windows 10 或 Windows Server 2016 上使用 PowerShell 创建自签名根证书并生成客户端证书。

相关内容