以下は、私たちが持っている内部 Web サービスに SOAP 要求を行うために作成したコードのスニペットです。Fiddler を実行している Fiddler でこれを実行すると、サイトが証明書を要求しているという警告が表示されます。Fiddler に証明書を提供すると、これは完全に実行されます。Fidler をオフにすると、接続が閉じられたというエラーが表示されます。証明書を ClientCertificates コレクションに追加しているため、壁に頭をぶつけています。デバッグすると、それがあることがわかります。実行時に表示されない理由はありますか? (ローカルマシンストアから取得してファイルから作成してテストした場所が表示されますが、どちらのオプションも機能していません)
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($certPath)
#$cert = get-item cert:\LocalMachine\* | get-ChildItem | Where-Object -FilterScript {($_.FriendlyName -eq "HRSYS")}
$soapWebRequest = [System.Net.WebRequest]::Create($url)
$soapWebRequest.ClientCertificates.Add($cert)
$soapWebRequest.Headers.Add("SOAPAction", "http://service.wellsfargo.com/provider/hr/entity/teamMemberData/getTeamMemberProfileById/2010/12/")
$soapWebRequest.ContentType = "text/xml;charset=`"utf-8`""
$soapWebRequest.Accept = "text/xml"
$soapWebRequest.Method = "POST"
$soapWebRequest.Timeout = 60000
$soapWebRequest.UseDefaultCredentials = $true