希望有人可以帮助我在这里,我的google-fu在这个问题上并不是很繁荣。我是一个新手PowerShell用户,但有几个脚本在我的腰带..希望有人遇到过此之前或者可能知道如何让这个工作......
我正在尝试测试需要证书的SOAP请求。如果我不需要,我宁愿不将证书导入证书库。在尝试将其编写为测试时,我将.pem证书文件导入脚本以用于请求时遇到了麻烦
PARAM(
$url = "https://URL",
$soaptxt = "soap.txt",
$cert = "cert.pem"
)
clear
$soapcert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($cert)
$out = Invoke-WebRequest $url -Method post -ContentType 'text/xml' -InFile $soaptxt -Certificate $soapcert
$out
我已经尝试了几种不同的组合,让它能够正常工作但仍然遇到同样的异常..
New-Object:使用“1”参数调用“.ctor”的异常:“不能 找到请求的对象。 “ 在 F:\开发\ PowerShell的\脚本\ SOAPRequest \ SOAPRequestTest.ps1:19 焦炭:13 + $ soapcert = New-Object System.Security.Cryptography.X509Certificates.X509Certifi ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [New-Object],MethodInvoca tionException + FullyQualifiedErrorId:ConstructorInvokedThrowException,Microsoft.Power
Shell.Commands.NewObjectCommand
非常感谢任何帮助!
谢谢!
答案 0 :(得分:0)
查看dotNet类from the MDSN Docs的描述,看起来你正试图使用这种形式的构造函数:
X509Certificate2(ByteArray[])
Initializes a new instance of the X509Certificate2 class using information from a byte array.
此方法希望信息位于字节数组中,而不是指向文件的指针。首先尝试将文件作为字节数组读取,然后查看是否有效。
$pathtoPem= c:\temp\cert.pem
$cert = [System.IO.File]::ReadAllBytes($PathToPem)