Saya perlu menggunakan TLS 1.2 untuk menyambung dari layanan web .NET saya ke layanan lain yang akan memaksa TLS 1.2. Saya menemukan sumber yang mengatakan .NET 4.6 menggunakan TLS 1.2 secara default sehingga terdengar seperti solusi termudah. Saya memperbarui kerangka kerja .NET di server dan memulai ulang. Di IIS saya mencoba membuat pool aplikasi menggunakan .NET 4.6 tetapi 4.0 adalah satu-satunya pilihan. Kemudian saya menemukan sesuatu yang mengatakan akan tetap mengatakan 4.0 karena 4.6 adalah pembaruan "di tempat" untuk .NET 4.0. Jadi saya pikir mungkin saya sudah selesai. Namun pada halaman kesalahan yang saya dapatkan karena alasan yang tidak terkait, dikatakan Microsoft .NET Framework Version:4.0.30319
jadi sepertinya saya belum berhasil meningkatkan. Ada petunjuk tentang cara memastikan kumpulan aplikasi saya menggunakan .NET 4.6, atau secara umum cara mengaktifkan TLS 1.2?
99
Jawaban:
Kami sebenarnya baru saja meningkatkan layanan web .NET ke 4.6 untuk memungkinkan TLS 1.2.
Apa yang dikatakan Artem adalah langkah pertama yang kami lakukan. Kami mengompilasi ulang kerangka layanan web menjadi 4.6 dan kami mencoba mengubah kunci registri untuk mengaktifkan TLS 1.2, meskipun ini tidak berhasil: sambungan masih dalam TLS 1.0. Selain itu, kami tidak ingin melarang SLL 3.0, TLS 1.0 atau TLS 1.1 pada mesin: layanan web lain dapat menggunakan ini; kami mengembalikan perubahan kami pada registri.
Kami benar-benar mengubah file Web.Config untuk memberi tahu IIS: "hei, jalankan saya di 4.6".
Berikut perubahan yang kami tambahkan di web.config + kompilasi ulang di .NET 4.6:
<system.web> <compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 --> <!--Added this httpRuntime --> <httpRuntime targetFramework="4.6" /> <authentication mode="Windows"/> <pages controlRenderingCompatibilityVersion="4.0"/> </system.web>
Dan koneksi berubah menjadi TLS 1.2, karena IIS sekarang menjalankan layanan web di 4.6 (diberitahu secara eksplisit) dan 4.6 menggunakan TLS 1.2 secara default.
sumber
Tambahkan kode berikut sebelum Anda membuat contoh klien layanan web Anda:
Atau untuk kompatibilitas mundur dengan TLS 1.1 dan sebelumnya:
sumber
jika Anda menggunakan .Net sebelum 4.5 Anda tidak akan memiliki Tls12 dalam enum sehingga status disebutkan secara eksplisit di sini
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
sumber
Tiga langkah yang dibutuhkan:
Tandai secara eksplisit SSL2.0, TLS1.0, TLS1.1 sebagai terlarang di mesin server Anda, dengan menambahkan
Enabled=0
danDisabledByDefault=1
ke registri Anda (jalur lengkapnya adalahHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
). Lihat layar untuk detailnyaAktifkan secara eksplisit
TLS1.2
dengan mengikuti langkah-langkah dari 1. Cukup gunakanEnabled=1
danDisabledByDefault=0
masing - masing.CATATAN: verifikasi versi server:
Windows Server 2003
tidak mendukungTLS 1.2
protokolAktifkan
TLS1.2
hanya di level aplikasi, seperti yang disarankan @John Wu di atas.System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Semoga panduan ini membantu.
UPDATE Seperti yang disebutkan @Subbu: Panduan resmi
sumber
Bagi saya di bawah ini berhasil:
Langkah 1: Mengunduh dan menginstal exe Penginstal web dari https://www.microsoft.com/en-us/download/details.aspx?id=48137 di server aplikasi. Reboot server aplikasi setelah instalasi selesai.
Langkah 2: Ditambahkan di bawah perubahan di web.config
<system.web> <compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 --> <!--Added this httpRuntime --> <httpRuntime targetFramework="4.6" /> </system.web>
Langkah 3: Setelah menyelesaikan langkah 1 dan 2, muncul kesalahan, " WebForms UnobtrusiveValidationMode memerlukan ScriptResourceMapping untuk 'jquery'. Tambahkan ScriptResourceMapping bernama jquery (case-sensitive) " dan untuk mengatasi kesalahan ini, saya menambahkan kunci di bawah ini di appsettings di file web.config saya
<appSettings> <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> </appSettings>
sumber
PowerBI Embedded membutuhkan TLS 1.2.
Jawaban dari Etienne Faucher di atas adalah solusinya. tautan cepat ke jawaban di atas ... tautan cepat ke jawaban di atas ... ( https://stackoverflow.com/a/45442874 )
PowerBI Memerlukan TLS 1.2 Juni 2020 - Ini Jawaban Anda - Pertimbangkan untuk Memaksa runtime IIS Anda hingga 4.6 untuk memaksa perilaku TLS 1.2 default yang Anda cari dari kerangka kerja. Jawaban di atas memberi Anda solusi hanya perubahan konfigurasi.
Gejala : Koneksi TCP / IP Ditutup Paksa ke Microsoft PowerBI Tertanam yang muncul tiba-tiba di seluruh sistem Anda.
Panggilan PowerBI ini hanya berhenti berfungsi dengan kesalahan Tutup TCP / IP Keras seperti firewall akan memblokir koneksi. Biasanya langkah autentikasi berfungsi - saat Anda menekan layanan untuk ruang kerja tertentu dan melaporkan id yang gagal.
Ini adalah catatan 2020 dari Microsoft PowerBI tentang TLS 1.2 yang diperlukan
PowerBIClient
metode yang menunjukkan masalah ini
GetReportsInGroupAsync GetReportsInGroupAsAdminAsync GetReportsAsync GetReportsAsAdminAsync Microsoft.PowerBI.Api HttpClientHandler Force TLS 1.1 TLS 1.2
Istilah Kesalahan Pencarian untuk membantu orang menemukan ini: System.Net.Http.HttpRequestException: Terjadi kesalahan saat mengirim permintaan System.Net.WebException: Sambungan yang mendasarinya ditutup: Terjadi kesalahan yang tidak terduga saat pengiriman. System.IO.IOException: Tidak dapat membaca data dari koneksi transport: Koneksi yang ada ditutup secara paksa oleh remote host.
sumber