Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Internet Information Services
Genel Bakış
Bu makale yalnızca Internet Information Services (IIS) ile ilgili Güvenli Yuva Katmanı (SSL) sorunlarını gidermenize yardımcı olur. İstemci sertifikalarını değil, sunucu kimlik doğrulaması için kullanılan sunucu sertifikalarını kapsar.
İstemci sertifikaları bölümü Gerekli olarak ayarlandıysa ve sorunlarla karşılaşırsanız, bu makale başvurmanız gereken makale değildir. Bu makale yalnızca SSL Sunucusu sertifikaları sorununu gidermeye yöneliktir.
Her sertifikanın bir ortak anahtar (şifreleme için kullanılır) ve bir özel anahtar (şifre çözme için kullanılır) içerdiğini bilmek önemlidir. Özel anahtar yalnızca sunucu tarafından bilinir.
HTTPS için varsayılan bağlantı noktası 443'dür. SSL el sıkışması sırasında SSL El Sıkışması ve Sunucu Kimlik Doğrulaması işlemiyle ilgili bilginiz olduğu varsayılır.
Bu sorun gidericide kullanılan araçlar
Çeşitli senaryolarda sorun gidermek için kullanılan araçlar şunlardır:
- Ağ İzleyici 3.4
- Wireshark
Senaryolar
HTTPS üzerinden bir web sitesine göz atarken aşağıdaki hata iletisini görürsünüz:
Denetlenecek ilk önkoşul, web sitesinin HTTP üzerinden erişilebilir olup olmadığıdır. Değilse, büyük olasılıkla bu makalede ele alınmayan ayrı bir sorun vardır. Bu sorun gidericiyi kullanmadan önce web sitesinin HTTP üzerinde çalışır durumda olması gerekir.
Şimdi web sitesine HTTP üzerinden erişilebildiğini ve HTTPS'ye göz atmayı denediğinizde önceki hata iletisinin gösterildiğini varsayalım. SSL el sıkışması başarısız olduğundan hata iletisi gösterilir. Sonraki birkaç senaryoda ayrıntılı olarak anlatılacak birçok neden olabilir.
1. Senaryo
Sunucu sertifikasının buna karşılık gelen özel anahtara sahip olup olmadığını denetleyin. Sertifika iletişim kutusunun aşağıdaki ekran görüntüsüne bakın:
Çözüm
Özel anahtar eksikse, temelde bir olan özel anahtarı içeren bir sertifika almanız gerekir. PFX dosyası. Özel anahtarı sertifikayla ilişkilendirmek için çalıştırmayı deneyebileceğiniz bir komut aşağıdadır:
C:\>certutil - repairstore my "906c9825e56a13f1017ea40eca770df4c24cb735"
İlişkilendirme başarılı olursa aşağıdaki pencereyi görürsünüz:
Bu örnekte, 906c9825e56a13f1017ea40eca770df4c24cb735
sertifikanın parmak izidir. Parmak izini almak için şu adımları izleyin:
- Sertifikayı açın.
- Ayrıntılar sekmesini seçin.
- Parmak izi bölümünü bulmak için aşağı kaydırın.
- Parmak izi bölümünü seçin ve altındaki metni seçin.
- Seçmek ve kopyalamak için Ctrl+A ve ardından Ctrl+C yapın.
Not
certutil
Komut her zaman başarılı olmayabilir. Bu başarısız olursa, sertifika yetkilisinden (CA) özel anahtarı içeren bir sertifika almanız gerekir.
2. Senaryo
Bu senaryoda, web sitesinde yüklü özel anahtarı içeren bir sunucu sertifikanız olduğunu düşünün. Ancak, 1. senaryoda gösterilen hatayı görmeye devam edebilirsiniz. Web sitesine HTTPS üzerinden erişemezsiniz.
Çözüm
Özel anahtarı içeren bir sertifikanız varsa ancak web sitesine erişemiyorsanız sistem olay günlüklerinde aşağıdaki SChannel uyarısını da görebilirsiniz:
Event Type: Error
Event Source: Schannel
Event Category: None
Event ID: 36870
Date: 2/11/2012
Time: 12:44:55 AM
User: N/A
Computer:
Description: A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x80090016.
Bu olay veya hata, sertifikanın özel anahtarını alma konusunda bir sorun olduğunu gösterir. Uyarıyı çözmek için şu adımları izleyin:
MachineKeys klasöründeki izinleri doğrulayın. Tüm özel anahtarlar MachineKeys klasöründe depolanır, bu nedenle gerekli izinlere sahip olduğunuzdan emin olun.
İzinler yerindeyse ve sorun hala düzeltilmemişse, sertifikayla ilgili bir sorun olabilir. Bozulmuş olabilir. Aşağıdaki SChannel olay günlüğünde hata kodunu
0x8009001a
görebilirsiniz:Event Type: Error Event Source: Schannel Event Category: None Event ID: 36870 Date: 2/11/2012 Time: 12:44:55 AM User: N/A Computer: A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x8009001a.
Web sitesinin bir test sertifikasıyla çalışıp çalışmadığını denetleyin.
Var olan sertifikanın yedeğini alın ve otomatik olarak imzalanan bir sertifikayla değiştirin.
HTTPS kullanarak web sitesine erişmeyi deneyin.
Çalışıyorsa, daha önce kullanılan sertifika bozulmuştur ve yeni bir çalışma sertifikasıyla değiştirilmelidir. Bazen sorun sertifikayla değil, verenle ilgili olabilir. Sertifika zincirinin doğrulaması sırasında, kök CA sertifikası güvenilir kök değilse hatayı
CERT_E_UNTRUSTEDROOT (0x800b0109)
görebilirsiniz.Bu hatayı düzeltmek için, CA'nın sertifikasını sunucudaki Bilgisayarım hesabı altında Güvenilen Kök CA deposuna ekleyin. Sertifika zincirinin doğrulaması sırasında hatasını
-2146762480(0x800b0110)
da alabilirsiniz.Hatayı düzeltmek için şu adımları izleyerek sertifikanın kullanım türünü denetleyin:
- Sertifikayı açın.
- Ayrıntılar sekmesini seçin.
- Özellikleri Düzenle'yi seçin.
- Genel sekmesinde, Bu sertifika için tüm amaçları etkinleştir seçeneğinin belirlendiğinden ve en önemlisi, Sunucu Kimlik Doğrulaması'nın listede bulunduğundan emin olun.
3. Senaryo
İlk iki senaryo sertifikanın bütünlüğünü denetlemeye yardımcı olur. Sertifikayla ilgili bir sorun olmadığını onayladıktan sonra, büyük boyutlu bir sorun çözülür. Ancak web sitesine HTTPS üzerinden hala erişilemiyorsa ne olur? Web sitesinin HTTPS bağlamalarını denetleyin ve dinlediği bağlantı noktasını ve IP'yi belirleyin.
Çözüm
Web sitesi tarafından kullanılan SSL bağlantı noktasında başka hiçbir işlemin dinlemediğinden emin olmak için aşağıdaki komutu çalıştırın.
netstat -ano" or "netstat -anob"
Bu bağlantı noktasını dinleyen başka bir işlem varsa, bu işlemin neden bu bağlantı noktasını kullandığını denetleyin.
Web sitesinin erişilebilir olup olmadığını denetlemek için IP Bağlantı Noktası bileşimini değiştirmeyi deneyin.
4\. Senaryo
Şu anda, web sitesinde düzgün bir çalışma sertifikasının yüklü olduğundan ve bu web sitesi için SSL bağlantı noktasını kullanmanın başka bir işlemi olmadığından emin olabilirsiniz. Ancak, HTTPS üzerinden web sitesine erişirken "Sayfa görüntülenemiyor" hatasını görmeye devam edebilirsiniz. İstemci bağlanıp SSL anlaşması başlattığında, HTTP.sys ssl yapılandırmasında istemcinin bağlı olduğu "IP:Bağlantı Noktası" çiftini arar.
SSL anlaşması başarılı olmadan önce HTTP.sys SSL yapılandırması bir sertifika karması ve sertifika deposunun adını içermelidir. Sorun ile HTTP.SYS SSL Listener
ilgili olabilir.
HTTP.sys ile kaydedilen Sertifika karması NULL olabilir veya geçersiz GUID içeriyor olabilir.
Çözüm
Şu kodu yürütün:
netsh http show ssl
Çalışma ve çalışma dışı senaryo örnekleri aşağıda verilmiştir:
Çalışma senaryosu
Yapılandırma Ayar IP:bağlantı noktası 0.0.0.0:443 Sertifika Karması c09b416d6b 8d615db22 64079d15638e96823d Uygulama Kimliği {4dc3e181-e14b-4a21-b022-59fc669b0914} Sertifika Deposu Adı Benim İstemci Sertifikası İptalini Doğrulama Etkin İptal Tazelik Süresi 0 URL Alma Zaman Aşımı 0 ...... ...... Çalışmayan senaryo
Yapılandırma Ayar IP:bağlantı noktası 0.0.0.0:443 Sertifika Karması Uygulama Kimliği {00000000-0000-0000-0000-000000000000} CertStoreName Benim İstemci Sertifikası İptalini Doğrulama 0 İptal Tazelik Süresi 0 URL Alma Zaman Aşımı 0 ...... ...... Çalışma senaryosunda görülen Karma değeri, SSL sertifikanızın parmak izidir. Çalışma dışı bir senaryoda GUID'nin sıfır olduğuna dikkat edin. Karma değerinin bir değeri olduğunu veya boş olduğunu görebilirsiniz. Sertifikayı web sitesinden kaldırıp çalıştırsanız
netsh http show ssl
bile, web sitesi GUID'yi 0'ların tümü olarak listelemeye devam eder. GUID değerini "{0000...............000}" olarak görüyorsanız bir sorun vardır.Aşağıdaki komutu çalıştırarak bu girdiyi kaldırın:
netsh http delete sslcert ipport=<IP Address>:<Port>
Örneğin:
netsh http delete sslcert ipport=0.0.0.0:443
Herhangi bir IP adresinin listelenip listelenmediğini belirlemek için bir komut istemi açın ve aşağıdaki komutu çalıştırın:
netsh http show iplisten
Komut bir IP adresleri listesi döndürürse, aşağıdaki komutu kullanarak listedeki her IP adresini kaldırın:
netsh http delete iplisten ipaddress=<IP Address>
Not
komutunu kullanarak IIS'yi
net stop http /y
bundan sonra yeniden başlatın.
Senaryo 5
Tüm bunlara rağmen, HTTPS'de web sitesine hala göz atamıyorsanız istemciden veya sunucudan bir ağ izlemesi yakalayın. İzlemeyi "SSL veya TLS" ile filtreleyerek SSL trafiğine bakın.
İşte çalışmayan senaryonun ağ izleme anlık görüntüsü:
İşte çalışma senaryosunun ağ izleme anlık görüntüsü:
Bu, bir ağ izlemesine nasıl baktığınızı gösteren yöntemdir. Çerçeve ayrıntılarını genişletmeniz ve sunucu tarafından hangi protokolün ve şifrenin seçildiğini görmeniz gerekir. Bu ayrıntıları görüntülemek için açıklamadan "Sunucu Merhaba" seçeneğini belirleyin.
Çalışma dışı senaryoda, istemci yalnızca TLS 1.1 ve TLS 1.2 kullanacak şekilde yapılandırıldı. Ancak IIS web sunucusu TLS 1.0'a kadar destekleyecek şekilde yapılandırıldığından el sıkışma başarısız oldu.
Hangi protokollerin etkinleştirildiğini veya devre dışı bırakildiğini belirlemek için kayıt defteri anahtarlarını denetleyin. Yol şu şekildedir:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
Etkin DWORD 1 olarak ayarlanmalıdır. 0 olarak ayarlanırsa protokol devre dışı bırakılır.
Örneğin, SSL 2.0 varsayılan olarak devre dışıdır.