我正在针对服务所有者提供的 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 中的证书(受密码保护)
Export-PfxCertificate $cert -Password (ConvertTo-SecureString -String "PASSWORD" -AsPlainText -Force) -FilePath c:\temp\cert.pfx
最后,您必须在测试机器上导入该证书,例如使用以下命令:
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 创建自签名根证书并生成客户端证书。