1
PowerShell很新,希望有人能指出我在正確的方向。Powershell http發佈與.cer的驗證
我需要執行POST請求,並且必須在POST請求期間將它傳遞給本地存儲的證書(x509)以進行身份驗證。
完成此操作的最佳方式或方法是什麼?我發現很多示例能夠在.net/C#中執行此任務,但我沒有找到任何可以在PowerShell中完成此任務的任務。
這裏是我的POST請求代碼,我想再次指出存儲在本地「C:\ code \ cert.crt」的證書並在Web事務中傳遞它。
$url = "https://myUrl/uploadTester"
$data = '{"data": "988309487577839444"}'
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$b = [System.Text.Encoding]::ASCII.GetBytes($data)
$web = [System.Net.WebRequest]::Create($url)
$web.Method = "POST"
$web.ContentLength = $b.Length
$web.ContentType = "application/x-www-form-urlencoded"
$stream = $web.GetRequestStream()
$stream.Write($b,0,$b.Length)
$stream.close()
$reader = New-Object System.IO.Streamreader -ArgumentList $web.GetResponse().GetResponseStream()
$reader.ReadToEnd()
$reader.Close()
感謝您的高級幫助。
感謝您的快速回復。我有一個問題: – user1048209 2012-04-12 12:42:33
感謝您的快速回復安迪。我確實有一個關於代碼的問題。我是否仍然需要離開「ServerCertificateValidationCallback = {$ true}」這一行。這是否完全忽略了所有的證書檢查?或者是我提供的證書使用Create($ url)來處理實際的證書驗證檢查? – user1048209 2012-04-12 14:32:51
@ user1048209我認爲ServerCertificateValidationCallback = {$ true}用於服務器端證書驗證,而不是發送到服務器的客戶端證書。 – 2012-04-12 18:54:07