Eksik bir IIS Express SSL Sertifikasını nasıl geri yüklerim?


134

IIS Express'te HTTPS'yi kurduktan sonra, şu ve bu gibi makalelere göre , aslında HTTPS kullanarak bir IIS Express sitesi yükleyemiyorum. In Chrome , sadece alma duyuyorum:

Bu web sayfası kullanılamıyor ("ERR_CONNECTION_RESET" hata koduyla)

... ve IE'de sadece alıyorum:

Internet Explorer web sayfasını görüntüleyemiyor

... bu makalelerdeki talimatları izlediğimde.

Bunun, IIS Express'in otomatik olarak yüklediği "IIS Express Geliştirme Sertifikası" nın kaldırılmış olmasıyla ilgili olduğu anlaşılmaktadır. Bu sertifikanın yeniden yüklenmesini nasıl sağlayabilirim?


2
Ayrıca, 443 numaralı bağlantı noktasında (veya aslında 44300-44399 aralığının dışındaki herhangi bir bağlantı noktasında) IISExpress'i çalıştırmaya çalışırken başıma geldi
Gerardo Grignoli

Not: Bu soruya kabul edilen yanıt, IIS Express localhost sertifikasının bulunduğu ve iyi göründüğü durumlarda bile geçerlidir.
haymansfield

Yanıtlar:


193

Program Ekle / Kaldır'a gidip IIS Express'te "Onar" seçeneğini belirledikten sonra sertifika yeniden yüklendi ve artık HTTPS kullanarak IIS Express sitelerini başlatabilirim.

IIS Express'i Onarın

Sertifika geri döndü:

IIS Express Geliştirme Sertifikası

Ve şimdi HTTPS kullanarak IIS Express sitesini başlatabilirim:

Başarı!


1
Benim için de çalışıyor, ancak benim durumumda sertifika oradaydı. Neden olduğundan emin değilim, ama aynı hatayla sonuçlandı. Bu yüzden sertifikayı kaldırdım ve 'onarım' bu geri yükledi ve voila. Çok teşekkürler.
Darius

37
Windows 10 kullanıcıları için not: Onarım yalnızca Denetim Masası'ndadır, Program Ekle Kaldır uygulamasında değildir. Parlak bir fikir msft.
Chris Weber

1
Çok daha hızlı bir yol, Jexus Manager'ı başlatmak ve yeni bir sertifika oluşturmak ve ardından sitenize bağlamaktır. jexusmanager.com Tabii ki henüz kırık sertifika bağlamaları düzeltmez ve ben tek bir tıklama özelliği yapmak nasıl göreceğim.
Lex Li

Onarım çalışıyor ancak MMC kullanarak var olan sertifikaları silmek zorunda kaldım. Karşılaştığım sorun onları localMachine'den yönetici olarak silmiyordum. MMC'yi yükseltilmiş izinlerle çalıştırdığınızdan emin olun!
ranieuwe

6
VS2019 kullanıcıları için not: Visual Studio Installer, MSI dosyasını Denetim Masası'nın beklediği yere koymadığı için "Onar" çalışmaz. Ancak, _package.json aynı dizinde bir dosya vardır ve MSI dosyasının URL'sini içerir. Bunu manuel olarak çalıştırabilir veya Denetim Masası'nın beklediği yere kopyalayabilirsiniz.
Chris R. Donnelly

156

Visual Studio 2015, IIS Express 10, Windows 10 için bu seçenekler benim için çalışmadı. IIS Express 10'da bir onarım seçeneği yoktu.

Sorunu IisExpressAdminCmd.exeadresindeki komutu kullanarak çözmeyi başardım C:\Program Files (x86)\IIS Express.

Yükseltilmiş bir komut isteminden şunu çalıştırın:

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned

UrlToYourSite yerine URL'nizi değiştirme.

Örneğin

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned

Bundan sonra IIS Express'i kapattım ve sitemi Visual Studio'dan yeniden başlattım ve kendinden imzalı sertifikaya otomatik olarak güvenmesi isteniyor.

Umarım yardımcı olur.


3
Bu, 443 numaralı bağlantı noktasında IISExpress'i çalıştırmaya çalışırken benim için çalıştı. +1
Gerardo Grignoli 12:06

Bu çözüm benim için harika çalıştı. Windows 10, Visual Studio 2015, IIS Express 10.
Glenn

1
Buradaki herhangi biri IIS Express tarafından kullanılan belirli bir bağlantı noktasını almakta sorun yaşıyorsa, o bağlantı noktasını kullanan bir kişinin IIS'de kayıtlı bir sitesi olup olmadığını kontrol etmek isteyebilirsiniz. Bugün benim günümdü.
Chris Marisic

2
Windows 10'a, IIS Express sahip bir onarım seçeneği. Denetim Masası'ndan geçmeniz gerekiyor. Kabul edilen cevap benim için çalıştı.
joerage

1
Komut satırını kullanmaktan yorulduysanız, bunu yapmak için Jexus Manager'ı kullanabilirsiniz, blog.lextudio.com/…
Lex Li

40

Bazen bu hata, localhost için yüklenmiş farklı bir sertifika nedeniyle olabilir . Bu durumda, IIS Express sertifikasını geri yüklemenize gerek yoktur. Bunun yerine, IIS Express'e varolan sertifikanızı kullanmasını bildirmek için aşağıdakileri yapabilirsiniz:

  1. Sertifikalar MMC ek bileşenini burada açıklandığı gibi açın
  2. Localhost sertifikanızı bulun, örneğin Kişisel ... Sertifikalandırın ve parmak izini alın:
    1. Localhost sertifikası için özellikler iletişim kutusunu açın ve Thumbprint özelliğini bulun
    2. Parmak izi değerini Not Defteri'ne (veya her ne olursa olsun) yapıştırın ve başında boşlukları ve özel karakterleri kaldırın
  3. IIS Express projenizin bağlantı noktası değerini bulun:
    1. Visual Studio'daki proje özelliklerine gidin ve "SSL URL" değerini bulun , örneğin " https: // localhost: 44300 / Uygulamam ".
    2. Bu örnekte 44300, bağlantı noktası numarasıdır. Sizinkinden farklıysa, sonraki komutlarda bu değeri değiştirin.
  4. Yönetici komut isteminde (Powershell değil) aşağıdaki komutları kullanın:

netsh http delete sslcert ipport=0.0.0.0:44300

netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}

Yukarıdaki komuttaki Guid, oluşturduğunuz bir Guid ile değiştirilebilir. Varolan herhangi bir IIS Express değerine karşılık gelmiyor.

Daha fazla başvuru için bkz . IIS Express'te URL Bağlama Hatalarını İşleme .


2
Daha görsel bir yol Jexus Manager, blog.lextudio.com/… ' ı kullanmaktır, o zaman sertifika karması gibi ayrıntıları hatırlamanız gerekmez.
Lex Li

"Parametre yanlış." hata - önce bu eki sonra certhash kullanın. Örnek: netsh http add sslcert ipport = 0.0.0.0: 44300 appid = {C21B9F4D-2A5D-4160-81C8-FBCC3EFC335E} certhash = your_cert_hash_with_no_spaces
gmsi

36

Ayrıca IIS Express'in SSL ile çalışması için, kullanılan bağlantı noktasının 44300 ila 44399 aralığında olması gerektiğini unutmayın ( http://www.iis.net/learn/extensions/using-iis-express/running-iis-express- yönetici ayrıcalıkları olmadan ).

Bu nedenle, Visual Studio'da IIS Express kullanıyorsanız, seçilen bağlantı noktasının gerekli aralıkta olduğundan emin olun: vs iis express ayarı


3
Bernie White'ın cevabındaki komutu kullandıktan sonra bu aralığın dışında bir port kullanabildim. Windows 10 / Visual Studio Community 2015 / .Net Core 1.0.1 / IIS Express 10.0
Ryan Thomas

1
Teşekkürler! Bu benim için sorunu çözdü. Visual Studio'nun bu konuda uyarmaması garip.
Erwin Mayer

4
44300-44399, yalnızca sertifika eşlenmiş varsayılan bağlantı noktası aralığıdır. netshArayarak benzer sertifika eşlemesi kolayca oluşturabilir veya blog.lextudio.com/ Jexus Manager'ı kullanabilirsiniz
Lex Li

12

Yeni Chrome 58 ile, aşağıdaki cevaplardan hiçbir şey yardımcı olmayacaktır. Sadece 1 saat sertifika kaldırma / yeniden yükleme ve sorunun nerede olduğunu bulmaya çalıştım.

Görünüşe göre Chrome 58, "missing_subjectAltName" sertifikasını reddedecek

Çözüm "badidea" parolasıdır veya giriş için pop-up'lar açmanız gerekiyorsa kullanmanız gerekir:

chrome: // flags / # allow-güvensiz-localhost

Kaynak ve upvote aittir: https://stackoverflow.com/a/38926117/2089232 :)



1
Ayrıca bkz. Blog.lextudio.com/…
Lex Li

2

Bunu eklemek istedim, çünkü saçma ama belki birine yardım edecek. Daha önce proje özelliklerimi hiç açmamış olduğumu unutmayın, bu yüzden bunun nasıl olduğu hakkında hiçbir fikrim yok (bunu kendim değiştirmedim veya fırsatım olmadı), ancak Proje> Özellikler> Web'de SSL URL'm her zamanki URL'm olarak listelendi ancak https yerine http olarak (daha önce çalıştığı için daha önce https olmuştu). Bu sayfada listelenen tüm adımları izledim , VS'yi , ardından IIS'yi kaldırdım ve sonunda https: // mySSLURL olması gereken hatayı fark ettim (ancak https'de s eksikti). Http'yi https olarak değiştirdikten sonra her şey tekrar çalıştı.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.