2017-01-12 10 views
40

Başarısız. "Invoke-WebRequest: İstek iptal edildi: SSL/TLS güvenli kanal oluşturulamadı." https istekleri iş görüyor ("https://google.com") ancak söz konusu olan bu değil. Bunu, sayfa içeriğini okumak için başka powershell komutunu çalışmak veya kullanmak için nasıl alabilirim?Powershell ınvoke WebRequest bu powershell komutunu</p> <p><code>Invoke-WebRequest -Uri https://apod.nasa.gov/apod/</code></p> <p>yürütmeye çalışıyorum ve bu hatayı alıyorum SSL/TLS ile Güvenli Kanal

cevap

93

SecurityProtocol[Flags] özelliği olan bir Enum, bazı oy çalmak için utanmaz girişimde bu bir

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/ 
+2

işe yaradı! Bana nedenini açıklar mısın? – hewstone

+5

Varsayılan olarak powershell, TLS 1.0 kullanıyor, site güvenliği TLS 1.2 gerektirir – crowchirp

+1

Awh, Sitenin TLS sürümünü nasıl belirlediniz? – hewstone

21

kullanmayı deneyin.

[Net.ServicePointManager]::SecurityProtocol = 
    [Net.SecurityProtocolType]::Tls12 -bor ` 
    [Net.SecurityProtocolType]::Tls11 -bor ` 
    [Net.SecurityProtocolType]::Tls 

Ya da bu PowerShell olduğundan, bu sizin için bir dize ayrıştırmak sağlayabilirsiniz:: Yani bunu yapabilirsiniz

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" 

Sonra teknik olarak TLS sürümünü bilmeniz gerekmez.

Bu yanıtı okuduktan sonra oluşturduğum bir komut dosyasından kopyaladım ve yapıştırdım çünkü çalışılan bulmak için tüm kullanılabilir protokoller arasında geçiş yapmak istemedim. Tabii ki, bunu yapmak istesiniz.

+0

SSLv3 kullanan bir siteye erişmeniz gerekiyorsa, o zaman '' [Net.ServicePointManager] :: SecurityProtocol = "Tls12, Tls11, Tls, Ssl3" 'yi isteyeceksiniz. SSLv3 ve TLSv1.0'ın POODLE nedeniyle kullanımdan kaldırıldığını unutmayın, bu nedenle kendi sorumluluğunuzda kullanın. – jordanbtucker

İlgili konular