Saya mencoba menjalankan perintah PowerShell ini
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/
dan saya mendapatkan kesalahan ini. "Invoke-WebRequest: Permintaan dibatalkan: Tidak dapat membuat saluran aman SSL / TLS." Permintaan https tampaknya berfungsi (" https://google.com ") tetapi bukan yang ini. Bagaimana saya bisa membuatnya bekerja atau menggunakan perintah powershell lain untuk membaca konten halaman?
powershell
ssl
Hewstone
sumber
sumber
Jawaban:
coba gunakan yang ini
sumber
$env:Profile
, atau lebih baik lagi, edit tabel registri .Dalam upaya yang tak tahu malu untuk mencuri suara,
SecurityProtocol
adalahEnum
dengan[Flags]
atribut. Jadi Anda bisa melakukan ini:Atau karena ini adalah PowerShell, Anda dapat membiarkannya mengurai string untuk Anda:
Maka Anda secara teknis tidak perlu tahu versi TLS.
Saya menyalin dan menempelkan ini dari skrip yang saya buat setelah membaca jawaban ini karena saya tidak ingin menelusuri semua protokol yang tersedia untuk menemukan yang berfungsi. Tentu saja, Anda bisa melakukannya jika Anda mau.
Catatan akhir - Saya memiliki pernyataan asli (dikurangi pengeditan SO) di profil PowerShell saya sehingga dalam setiap sesi saya mulai sekarang. Ini tidak sepenuhnya aman karena masih ada beberapa situs yang gagal tetapi saya pasti melihat pesan tersebut lebih jarang.
sumber
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"
. Ingatlah bahwa SSLv3 dan TLSv1.0 telah ditinggalkan karena POODLE, jadi gunakan dengan risiko Anda sendiri.Jika, seperti saya, tidak satu pun di atas cukup berfungsi, mungkin layak juga secara khusus mencoba versi TLS yang lebih rendah saja. Saya telah mencoba kedua hal berikut, tetapi sepertinya tidak menyelesaikan masalah saya:
Pada akhirnya, hanya ketika saya menargetkan TLS 1.0 (khusus menghapus 1,1 dan 1,2 dalam kode) itu berhasil:
Server lokal (bahwa ini sedang dicoba) baik-baik saja dengan TLS 1.2, meskipun server jauh (yang sebelumnya "dikonfirmasi" sebagai baik untuk TLS 1.2 oleh pihak ke-3) tampaknya tidak.
Semoga ini bisa membantu seseorang.
sumber
Ini bekerja untuk saya ...
sumber
Pastikan Anda mengganti SHELL terlebih dahulu:
sumber
Saya belum mengetahui alasannya tetapi menginstal ulang
.pfx
sertifikat (baik di pengguna saat ini dan mesin lokal) bekerja untuk saya.sumber
Invoke-WebRequest
secara lokal, ia bekerja pada awalnya tetapi akan gagal nanti. Sepertinya kadang-kadang tidak bisa membaca sertifikat lagi (saya tidak tahu mekanisme di baliknya. Mungkin itu pengaturan yang dikendalikan oleh perusahaan). Tetapi menginstal ulang sertifikat berfungsi dalam kasus ini.