Saya menggunakan Visual Studio 2013 baru dengan IISExpress untuk pertama kalinya (server Pengembangan ASP.net sebelumnya pada VS2010). Saya mengalami masalah mencoba men-debug proyek saya.
Ini yang saya lihat di Chrome:
Tidak dapat membuat koneksi yang aman ke server. Ini mungkin masalah dengan server, atau mungkin memerlukan sertifikat otentikasi klien yang tidak Anda miliki. Kode kesalahan: ERR_SSL_PROTOCOL_ERROR
Saya memperbarui Properies saya -> file web sehingga Url Proyek menggunakan URL https sekarang. Namun, setelah melakukan itu, saya sekarang mendapatkan kesalahan baru saat meluncurkan:
Koneksi ke localhost terputus. Kode kesalahan: ERR_CONNECTION_RESET
Terima kasih
Jawaban:
Jika Anda menggunakan URLRewrite untuk memaksa koneksi SSL di web.config Anda, itu mungkin menulis ulang alamat localhost Anda untuk memaksa https. Jika debugging dengan SSL diaktifkan tidak penting bagi Anda dan Anda menggunakan URLRewrite, pertimbangkan untuk menambahkan
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
ke bagian penulisan ulang file web.config. Ini akan menghentikan penulisan ulang untuk setiap alamat host lokal tetapi membiarkannya tetap di lingkungan produksi. Jika Anda tidak menggunakan URLRewrite atau perlu melakukan debug menggunakan SSL, http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx mungkin membantu. Ini untuk VS2010, tetapi harus cukup untuk VS2013 juga.sumber
Saya mendapatkan ERR_CONNECTION_RESET karena nomor port aplikasi yang dikonfigurasi Visual Studio 2013 / IIS Express saya TIDAK dalam kisaran : 44300-: 44398 . (Saya tidak ingat harus mengabaikan peringatan untuk keluar dari jangkauan itu.) Mengubah nomor port menjadi sesuatu dalam kisaran ini adalah semua yang harus saya lakukan untuk membuatnya berfungsi.
Saya perhatikan ini setelah meninjau
netsh http show sslcert > sslcert.txt
output dan sesuatu mengklik dengan hal-hal yang saya baca baru-baru ini tentang nomor port.sumber
netsh http add sslcert ...
untuk menambahkan port yang ingin Anda gunakan. Berguna dalam beberapa kasus.netsh
untuk menyelamatkan, ini layak posting blog ...Pastikan untuk menghapus sertifikat 'localhost' sebelumnya karena yang dapat bertentangan dengan yang dihasilkan oleh IIS Express. Saya memiliki kesalahan yang sama (ERR_SSL_PROTOCOL_ERROR), dan saya butuh waktu berjam-jam untuk akhirnya mengetahuinya setelah mencoba banyak "solusi". Kesalahan saya adalah bahwa saya telah membuat sertifikat 'localhost' saya sendiri dan ada dua dari mereka. Saya harus menghapus keduanya dan membuat IIS Express membuatnya kembali.
Inilah cara Anda dapat memeriksa dan menghapus sertifikat 'localhost':
Pada Visual Studio, pilih proyek dan di bawah tab properti, aktifkan SSL = true. Simpan, Bangun, dan Jalankan. IIS Express akan menghasilkan sertifikat 'localhost' baru.
Catatan: Jika tidak berhasil, coba ini: pastikan untuk menonaktifkan IIS Express pada proyek VS dan menghentikan semua aplikasi yang berjalan sebelum menghapus sertifikat 'localhost'. Anda juga dapat membuka 'panel kontrol> program' dan Perbaikan IIS Express.
sumber
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
Saya merangkum langkah-langkah yang membantu saya dalam menyelesaikan masalah ini:
New_Certificate_Hash akan menjadi sertifikat default Anda yang diikat dengan localhost Anda (yang kami temukan di langkah 4) atau yang ingin Anda tambahkan sebagai sertifikat baru.
PS Terima kasih atas jawaban Anda uosɐſ (yang membantu saya menyelesaikan masalah ini)
sumber
Masalah yang saya alami berkaitan dengan saya, pada suatu saat, mengaktifkan HSTS untuk localhost dan tidak menyadari bahwa ini akan merusak http saya : // localhost: someport di IIS Express.
HSTS memberi tahu browser (Chrome dalam kasus saya) untuk SELALU meminta URL menggunakan HTTPS. Jadi untuk itu meskipun saya bahkan belum mengaktifkan SSL untuk aplikasi MVC 5 saya, browser masih akan mencoba mengakses situs saya menggunakan HTTPS di URL alih-alih HTTP.
Memperbaiki?
sumber
Tidak ada opsi di atas yang berfungsi untuk saya. Saya harus melakukan hal berikut:
Saya mendapat langkah-langkah dari utas ini.
Semoga ini membantu.
sumber
Dalam kasus saya, saya membuat sertifikat yang ditandatangani sendiri dan membuatnya berfungsi, kecuali saya mendapat kesalahan di browser karena sertifikat itu tidak dipercaya. Jadi, saya memindahkan sertifikat tersebut ke folder Otoritas Sertifikasi Root Tepercaya> Sertifikat di snapin Sertifikat. Itu berhasil, dan kemudian saya menutup Visual Studio untuk hari itu.
Hari berikutnya, saya memulai proyek saya dan saya menerima kesalahan yang disebutkan dalam pertanyaan awal. Masalahnya adalah bahwa sertifikat yang Anda konfigurasi dengan IISExpress harus ada di folder Personal> Certificates atau HTTPS akan berhenti berfungsi. Setelah IIS Express berhasil dimulai, Anda dapat menyeret sertifikat kembali ke lokasi tepercaya. Ini akan terus berfungsi sampai Anda me-restart IIS Express.
Tidak ingin repot dengan menyeret sertifikat bolak-balik setiap kali, saya hanya menempatkan salinan sertifikat di kedua tempat dan sekarang semuanya berfungsi dengan baik.
sumber
Saya memiliki masalah yang sama di Visual Studio 2015. Karena saya menggunakan SSL binding di web.config
Dan saya bisa memperbaiki masalah dengan jawaban Mr.djroedger. Dengan mengganti
dengan
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
ke web.config saya, jadi kode saya adalah
sumber
Saya mengalami masalah ini, saya telah mengkonfigurasi situs saya untuk global, memerlukan https di FilterConfig.cs.
Saya lupa mengubah url proyek menjadi https: dari tutorial ini http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- sql-database / dalam ENABLE SSL part 4. Ini menyebabkan kesalahan yang Anda dapatkan.
sumber
Masalah yang saya miliki terkait dengan jawaban @Jason Kleban, tapi saya punya satu masalah kecil dengan pengaturan saya di Visual Studio Properties untuk IIS Express.
Pastikan bahwa setelah Anda mengubah port menjadi dalam kisaran: 44300 hingga 44399, alamat juga dimulai dengan
HTTPS
sumber
Masalah lain yang terjadi dua kali pada saya:
Di IIS Express,
applicationhost.config
urutan binding tidak masalah. Satu pengikatan dapat diutamakan daripada pengikatan SSL Anda, membuatnya tidak berfungsi.Contoh:
Anda mungkin telah menambahkan penjilidan yang serupa dengan yang kedua untuk dapat mengakses Layanan Web Anda dari luar
localhost
. Karena pengikatan ini mendengarkan pada alamat apa pun, tampaknya mengesampingkan pengikatan SSL meskipun port yang berbeda digunakan.Hapus ikatan jahat atau pindahkan ke bawah.
sumber
Menghapus IISExpress dan direktori vs. dan menggunakan kisaran port ssl dari 44300 hingga 44399 (inklusif) dari artikel ini bekerja untuk saya
sumber
Ini bersifat anekdotal karena tidak terdengar dari rekan kerja, tetapi diduga ini adalah masalah dengan chrome yang memaksa https. Saya biasanya memulai di firefox jadi saya belum melihat masalah ini sebelumnya. Menggunakan firefox atau mis. Bekerja untuk rekan kerja saya.
sumber
Masalah saya disebabkan oleh Fiddler. Ketika Fiddler crash, terkadang pengaturan messy Anda terganggu. Meluncurkan Fiddler sepertinya memperbaiki segalanya (mungkin entah bagaimana memperbaiki sendiri).
sumber
' Pemeriksa instalasi sertifikat Digicert ' seringkali membantu dalam situasi seperti ini.
Saya dapat memverifikasi sertifikat SSL yang sedang dicoba adalah yang saya harapkan dengan membandingkan nomor seri.
Bagi saya @Jason Kleban jawaban adalah masalah yang sebenarnya, tetapi ini bisa menjadi utilitas yang sangat berguna untuk memeriksa pernyataan dasar Anda tentang sertifikat apa yang sedang dimuat.
sumber
Jika Anda perlu menggunakan port di luar rentang 44300-44399, berikut ini solusinya:
Ini mendaftarkan sertifikat IIS Express Development dengan port itu dan merupakan cara termudah yang saya temukan untuk memenuhi persyaratan kisaran 44300-44399.
sumber
Saya baru saja membangun kembali komputer saya. Utas ini memberi saya petunjuk, di mana saya menyadari dalam pengaturan proyek> Web, proyek dikonfigurasi untuk menggunakan HTTP dan port HTTP. Dengan memperbarui ke HTTPS dan port HTTPS yang benar, semuanya mulai berfungsi lagi.
sumber
Untuk mengikuti jawaban lain tentang pengaturan port SSL antara 44300 dan 44399, saya tidak dapat mengubah properti SSL Diaktifkan di Visual Studio, atau menetapkan URL SSL tertentu. Jawaban lain, seperti memperbaiki IIS Express tidak membantu. Solusinya adalah masuk ke folder .vs yang paralel dengan file sln, buka subfolder config, dan kemudian edit file applicationhost.config. Kemudian, saya menambahkan garis https secara manual dan memulai kembali VS.
sumber
Dalam kasus saya, saya hanya lupa bahwa saya memiliki pengaturan yang mengikat untuk (dalam kasus saya) https: // localhost: 44300 dalam IIS penuh. Anda tidak dapat memiliki keduanya!
sumber
Dalam kasus saya, url localhost dialihkan ke https: // localhost ketika saya sedang debug. Ini terjadi dari satu momen ke momen lainnya, tanpa mengubah apa pun. Saya memecahkan masalah ini dengan membuat ulang yang sulit ke browser. Sini tautannya
sumber