IIS 7 Hala Eski SSL Sertifikası Sunuyor


27

IIS7'ye yeni bir SSL sertifikası yükledim, eski sertifikayı kaldırdım ve yeni sertifikanın bağlanma ayarlarını yaptım - böylece https şimdi yalnızca yeni sertifikasına bağlandı.

IIS7'yi (ve Windows 2008 Sunucusunun kendisini) yeniden başlattım ve aşağıdaki komutları kullanarak sertifikayı kontrol ettim:

netsh http show sslcert

Bu beklediğim gibi sadece yeni sertifika gösterdi

certutil -store MY

Bu aynı zamanda beklediğim gibi sadece yeni sertifikayı gösterdi, eskisini değil

Ayrıca mmc'yi açıp oradaki sertifikaları kontrol ettim ve yalnızca yenisini görüyorum, eskisini değil.

Ayrıca Yönetici ayrıcalıklarına sahip bir hesap kullanıyorum.

Ancak - bir tarayıcıyı açtığımda (herhangi bir bilgisayardan) ve https sitesine gittiğimde hala eski sertifikayı kullanıyor. Eski sertifikayı tarayıcıdan çıkarsam bile, yenisini değil de eskisini gönderir.

Birisi yanlış gittiğim yerde çalışmama yardım edebilir mi? Eski hayalet sertifikayı nasıl abartırım?

Yanıtlar:


28

İlk önce muhtemelen sizin için aynı olan birkaç puan

  • Bir sertifikayı güncellemeye çalışıyordum çünkü süresi doldu.
  • Aynı IP'ye bağlı birden fazla alan var. SAN sertifikası gibi görünüyorlar ama bu muhtemelen alakasız.
  • Merkezi sertifika deposunu kullanmaya çalışıyordum. Yine bunun cevabımın çoğuyla alakasız olduğunu düşünüyorum.
  • Sertifikayı güncellemeye çalışmıştım ancak yeni tarihi göstermiyordu.
  • Eski sertifikanızın süresi dolmuşsa, muhtemelen şu anda panik içindesiniz. Derin bir nefes al...

Öncelikle https://www.digicert.com/help/, DigiCert aracını şiddetle gidip indirmenizi tavsiye ederim . Çevrimiçi olarak da kullanabilirsiniz.

Web sitenize girin https://example.comve son kullanma tarihini ve parmak izini gösterecektir (MS'in sertifika karması dediği şey). Gerçek zamanlı bir arama yapar, böylece tarayıcınızın (veya ara sunucunuzun) bir şeyi önbelleğe alıp almadığından endişelenmenize gerek yoktur.

Merkezi sertifika deposunu kullanıyorsanız, .pfx dosyasının en son sürüm olduğundan% 100 emin olmak istersiniz, bu nedenle mağaza dizininize gidin ve şu komutu çalıştırın:

C:\WEBSITES\SSL> certutil -dump www.example.com.pfx

Bu size son kullanma tarihini ve karma / parmak izini gösterecektir. Belli ki bu son kullanma tarihi yanlışsa, probaly sadece yanlış sertifikayı dosya sistemine vermiş olursunuz, o yüzden gidip düzeltin.

CCS kullanıyorsanız, o zaman bu certutil komutunun (son güncellenmiş sertifikanızın) beklenen son kullanma tarihini verdiğini varsayarak devam edebilirsiniz.

Komutu çalıştırın:

netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt

Burada muhtemelen çok fazla şey var, bu yüzden bir metin editöründe açmak daha kolay.

Bu dosyayı, aldığınız WRONG karma digicert.com(veya Chrome'dan aldığınız parmak izi) için aramak isteyeceksiniz.

Benim için bu, aşağıdakileri verdi. Beklenilen alan adıma değil, bir IP'ye bağlı olduğunu göreceksiniz. Sorun bu. Görünüşe göre bu (ne olursa olsun emin değilim), henüz güncellediğim IIS'deki bağlamaya göre öncelikli example.com.

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

Bu bağlantının nereden geldiğini bile bilmiyorum - varsayılan sitemde SSL bağlantısı bile yok, ancak bu sunucu birkaç yaşında ve bir şeyin bozulduğunu ve sıkışıp kaldığını düşünüyorum.

Yani silmek isteyeceksiniz.

Güvenli tarafta olmak için, yalnızca bir öğeyi sildiğinizden emin olmak için önce aşağıdaki komutu çalıştırmak istersiniz:

C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443

SSL Certificate bindings:
-------------------------

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

Şimdi bunun 'kötü' parmak izi olduğunu doğruladık ve beklenen tek kayıt bu komutla silebiliriz:

C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443

SSL Certificate successfully deleted

Umarım şimdi Digicert'e geri dönüp komutu yeniden çalıştırırsanız, size beklenen sertifika parmak izini verecektir. Emin olmak için tüm SAN isimlerinizi kontrol etmelisiniz.

Muhtemelen burada daha sonra sürpriz olmadığından emin olmak için IISRESET'i istiyorum.

Son not: Merkezi sertifika deposunu kullanıyorsanız ve sertifikanızı oradan alıp almadığını bile belirlemeye çalışırken kararsız davranan davranışlar görüyorsanız - endişelenmeyin - bu sizin suçunuz değil. Bazen hemen yeni dosyalar alıyor gibi görünüyor, ancak eski dosyaları önbelleğe alıyor. Herhangi bir değişiklik yaptıktan sonra SSL bağlantısını açmak ve yeniden kaydetmek, zamanın% 100'ünü değil sıfırlıyor gibi görünüyor.

İyi şanslar :-)


3
Sen Simonslar arasında bir Simon'sun. Bizim durumumuzda, sunucumuzun süresi dolmuş sertifikayı 'önbelleğe aldığı' ortaya çıktı, [::1]:443ancak IIS'deki sertifikayı güncellemek yalnızca kaydı güncelledi 0.0.0.0:443. Teşekkür ederim!
tuespetre

1
Bu, aynı IP’deki birden fazla alan adında sorunumu çözdü; merkezi bir sertifika deposu kullanmamak.
Chris F Carroll,

1
Bunu birkaç kez kullanmak zorunda kaldım. PLESK web barındırma yönetimi yazılımı zaman zaman sertifika bağlarını bozar ve rahatsız edici bağlamayı kaldırmak için yukarıdaki netsh komutlarına ihtiyaç duyarım. Hangi sürümlerin etkilendiğinden emin değilim, ancak Windows Server 2016'da geçerli PLESK Onyx sürümünü kullanıyorum.
BenSwayne

Benim durumumda bu hostname ve port ile yapıldı. Böylece, ana bilgisayar adına göre filtrelemek ve silmek için komutlar şu şekilde olacaktır: "netsh http show sslcert hostnameport = www.example.com: 443" ve "netsh http delete sslcert hostnameport = www.example.com: 443"
Karthik Jayapal

14

IIS'de siteye bağlı sertifikayı kontrol edin. Siteye sağ tıklayabilir ve ciltlemeleri düzenle seçimini yapabilirsiniz. Orada, bir SSL sertifikasıyla ilişkilendirilmiş 443 numaralı bağlantı noktasını gösteren bir bağlayıcı görmelisiniz. Bu hala eskisine işaret ediyor olabilir.


Kontrol ettim ve 443 numaralı bağlantı noktasının bağlantılarındaki sertifika eskisi değil yeni sertifikadır. Önerin için teşekkürler.
joechip

1
Garip, bu hiç olmadı. Yine de eski sertifikaları hiç çıkarmam. Eski sertifikayı almaya devam ettiğinden nasıl eminsin? Süresi dolmuş mu gösteriyor?
Tatas

Evet, tarayıcıda sertifikanın ayrıntılarını (son kullanma tarihi, vb.) Ve eski olanlarının IIS7’nin sunmuş olduğunu kontrol edebilirsiniz.
joechip

1
Bunu - Chrome ile gördüm. Chrome, eski sertifikayı önbelleğe alıyor ve kullanıcıya gösteriyor.
TomTom

3

Sadece çalıştım. Sunucu aslında bir ISA sunucusunun arkasında oturuyordu, bu yüzden yeni SSL sertifikasını ISA sunucusuna da yüklemek zorunda kaldık.


3

Aynı sorunu yaşadım ve bağlantıları da kontrol ettim. IIS'de yüklü 2 uygulama vardı, biri eski, diğeri yeni sertifika kullanıyordu.

Düzeltmek için sertifikayı sunucudan tamamen kaldırmak zorunda kaldım (sonra yeniden başlatılabilir).

IIS Yöneticisi -> (IIS ağacı kökü) -> Sunucu Sertifikaları simgesinden, eski sertifikayı seçin ve Eylemler bölmesinde Kaldır'ı tıklayın.


1
Aynı şekilde eski sertifikayı referans alan ek bir STOPPED sitemiz vardı ve o siteyi yenisini kullanmak için güncellediğimizde, gerçek canlı site yeni sertifikayı göstermeye başladı!
Eylem Dan

1

IPv6 yükseltme sırasında bunu yaşadım. Birinin aslında bir web sunucusu tabanlı servis olmayan HTTP üzerinden bir servise erişmeye çalışması durumunda yönlendirme sağlayan IIS kullandım. Asıl servisi (bir ses sunucusu) IPv6 olacak şekilde güncelledim, ancak yönlendirmenin IPv6 adreslerini içerecek şekilde bağlanmalarını güncelleyemedim.

Bu, üzerinde eski sertifikasına sahip olan tüm sitelerin global olarak bağlı bir yakalama işleminde başarısız olduğu kararlarla sonuçlandı. Sadece 404'lerin yakalanmasından bu yana, sitenin işe yaramadığı ortaya çıktı, gerçekte yanlış yere isabet ediyordu.


0

Birisi hala bu konuda yanılmak durumunda. Mayına giderek çözüldü

C:\inetpub\wwwroot

Sonra bir web.config dosyası bulup, not defteri kullanarak açınız ve satırı kaldırınız.

<httpRedirect enabled="true" destination="http://foo.company.org" />

IIS sunucunuzun yerel ana bilgisayarına veya kök sitesine erişmek için tekrar kaydedin ve tekrar deneyin.

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.