我对需要身份验证的休息服务有一个curl命令,如下所示:
curl -s --key private_key.pem --cert certificate.cer $url
现在这个命令完美地给出了一个有效的json
由于某些项目要求,我现在需要使用powershell。为此,我尝试使用Invoke-RestMethod,如下所示
Invoke-RestMethod -Uri $url -Method Get -Certificate certificate.cer
我给出了错误,如下所示:
Invoke-RestMethod : Cannot bind parameter 'Certificate'. Cannot convert value ".\certificate.cer" to type
"System.Security.Cryptography.X509Certificates.X509Certificate". Error: "The system cannot find the file specified.
我还尝试将证书添加到Windows中的证书存储区。现在查询$ url会给我一个未经授权的回复。
请帮我使用pem和cer文件来验证服务。没有为任何其他方式提供用户名/密码。
答案 0 :(得分:0)
没关系,我通过使用openssl将证书转换为pfx证书来实现这一目标
openssl pkcs12 -export -out .\certificate.pfx -inkey .\private_key.pem -in .\certificate.cer
然后我使用了Invoke-RestMethod,如下所示
$cert = Get-PfxCertificate -FilePath .\certificate.pfx
$response = Invoke-RestMethod -Uri $url -Method Get -Certificate $cert
我收到了有效的JSON响应。谢谢你的帮助。