使用cer / pem进行身份验证时,给定卷曲的powershell等价物是什么?

时间:2016-12-01 17:18:40

标签: powershell authentication curl

我对需要身份验证的休息服务有一个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文件来验证服务。没有为任何其他方式提供用户名/密码。

1 个答案:

答案 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响应。谢谢你的帮助。