Window'un SSL Cipher-Suite'i belirli SSL sertifikaları altında neden kısıtlanıyor?


14

Sorun: Windows Server 2008 R2, sunucuda belirli sertifikaları kullanırken yalnızca aşağıdaki ssl şifreleme paketlerini destekleyecektir:

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

XP Şifreleme API'si varsayılan olarak herhangi bir AES şifresini desteklemediğinden, bu, XP istemcilerinin sunucuya bağlanmasını önler.
Sonuç olarak, Internet Explorer veya uzak masaüstü kullanarak bağlanmaya çalışırken sunucu günlüklerinde aşağıdaki hatalar görünür. (Microsoft'un CAPI'sini kullandıkları için)

Schannel Error 36874 "Uzak istemci uygulamasından TLS 1.0 bağlantısı alındı, ancak istemci tarafından desteklenen şifre paketlerinin dodne'i sunucu tarafından destekleniyor. SSL bağlantı isteği başarısız oldu."
Schannel Error 36888 "Aşağıdaki önemli uyarı oluşturuldu: 40. Dahili hata durumu 1204"


2
Gary, kendi sorunuzu çözdüyseniz lütfen cevap olarak işaretleyin.
Bernie White

Yanıtlar:


14

Sunucuda kullanılan sertifika, sertifika istek formundaki Eski Anahtar seçeneği kullanılarak oluşturulduysa, söz konusu sertifikanın özel anahtarı Microsoft'un eski Şifreleme API'sı çerçevesinde saklanır. Web sunucusu yeni, Şifreleme Yeni Nesil (CNG) çerçevesini kullanarak istekleri işlemeye çalıştığında, eski çerçevede depolanan RSA özel anahtarıyla ilgili bir şeyin yeni çerçeve için kullanılamadığı anlaşılıyor. Sonuç olarak, RSA şifre takımlarının kullanımı ciddi şekilde sınırlıdır.

Çözüm:
Özel sertifika isteği sihirbazındaki CNG Anahtarı şablonunu kullanarak sertifika isteği oluşturun.

MMC | Yerel Bilgisayar Sertifika Yöneticisi | Kişisel Sertifikalar Klasörü | (sağ tıklama) | Tüm Görevler -> Gelişmiş İşlemler | Özel İstek Oluştur | "Kayıt politikası olmadan devam et" | "(şablon yok) CNG anahtarı" | gereksinimlerinize göre sertifika isteğini tamamlamaya devam edin.

Anahtarın doğru yerde olduğunu doğrulama:
http://msdn.microsoft.com/en-us/library/bb204778(VS.85).aspx
http://www.jensign.com/KeyPal/index.html

Doğru şifre paketlerini doğrulama araçları:
http://pentestit.com/2010/05/16/ssltls-audit-audit-web-servers-ssl-ciphers/
https://www.ssllabs.com/

SSL şifreleme paketi ayarları:
http://support.microsoft.com/kb/245030
http://blogs.technet.com/b/steriley/archive/2007/11/06/changing-the-ssl-cipher-order -in-internet-explorer-7-on-pencere-vista.aspx

Bunun çözülmesi bir hafta sürdü. Umarım bu da birine aynı sıkıntıyı getirir.


Kendinden imzalı sertifikalar için bunun nasıl yapılacağını veya başka türlü sorunun çözüleceğini bilen var mı?
MGOwen

Çalışmanız ve sonuçlarınızı paylaştığınız için çok teşekkürler Gerry! Bir Microsoft Destek Örneği açtık ve Microsoft'un kendisi belirli istemcilerin neden bağlanamadığını bulamadı. Sorunu tam olarak açıkladığınız gibi yaşadık. Ancak technet.microsoft.com/en-us/library/ff625722(v=ws.10).aspx 'e göre Microsoft, en iyi uyumluluğu arşivlemek için Eski Anahtar Şablonunu kullanmanızı önerir! Harika iş!

2

Aynı sorunu kendim aldım ve bu yazı bana bir ton zaman kazandırdı, bu yüzden teşekkürler!

Gary çözümü yerinde ama ben sadece PFX PEM dönüştürmek ve daha sonra tekrar openssl kullanarak tekrar PFX dönüştürerek sorunu çözmek başardı. Yeni PFX, sertifikayı IIS'de eksik şifreleri görebildiğim farkla aynı şekilde içe aktardı.

Bu nasıl:

openssl pkcs12 -in mycert.pfx -out mycert.cer -nodes

Ardından cer dosyasını üçe, anahtarı, sertifikayı ve ara sertifikayı [s]

openssl pkcs12 -export -out mycert-new.pfx -inkey mycert.key \
-in mycert.crt -certfile mycert-intermediate.crt

Daha sonra yeni .pfx dosyasını IIS'ye alırsanız, görmeyi beklediğiniz tüm şifreleri kullanır.

Bu nedenle sertifikayı yeniden düzenlemenize gerek yoktur.


Bu benim için benzer bir durumda işe yaradı, ancak orijinal soruya ters düştü: Windows Server 2012 R2'deki AD FS rolü , sertifika isteği için Eski API'yı kullanmanızı gerektirir - ancak daha sonra yalnızca 2 AES şifresini gösterir Yukarıda verilen! Anahtarın OpenSSL ile dışa aktarılması, yeniden paketlenmesi ve yeniden içe aktarılması aynı sorunu çözer - diğer protokoller aniden çalışmaya başlar. Teşekkürler, @gelilloadbad!
ewall

0

Sorunum tam olarak aynı olmasa da, gönderiniz bana yardımcı oldu.

Ancak, neden benim açımdan bir WINHTTP SUNUCU API yapılandırma hatası oldu. IP adresim değişti ve "MY" makinesine yeni bir sunucu sertifikası koyduğumda, HttpSetServiceConfiguration için ALREADY_EXISTS dönüş kodunu yok saydım.

Bu nedenle, ortak adı yanlış olan ve yeni sunucu adımla eşleşmeyen önceki bir sunucu TLS sertifikasını kullandım.

HttpDeleteServiceConfiguration () veya "netsh http delete sslcert 0.0.0.0:8443" komut satırı doğru şekilde yapılmazsa, bu belirtilerle ilgili kötü bir hata alırsınız:

1) TLS'de, İstemci Hello'nuz hemen Ack ve Reset bayrak bitleri ayarlanmış olarak sunucunuzdan bir TCP paketi ile karşılanır. (Bir el sıkışma hatası uyarısı, sanırım?)

2) Olay görüntüleyici "Aşağıdaki önemli uyarı oluşturuldu: 40. Dahili hata durumu 107'dir."

"Uzak istemci uygulamasından bir SSL 3.0 bağlantı isteği alındı, ancak istemci uygulaması tarafından desteklenen şifre paketlerinin hiçbiri sunucu tarafından desteklenmiyor. SSL bağlantı isteği başarısız oldu."

Bu nedenle, bir şifre takımı uyumsuzluğunu kovalamaya başlamadan önce, kullanmak istediğiniz sunucu sertifikasını gerçekten kullandığınızdan emin olun:

         netsh http show sslcert

ve hash değerlerini kontrol edin!


Bu cevap çok net değil ve fazla bir anlam ifade etmiyor. "Window'un SSL Cipher-Suite'i belirli SSL sertifikaları altında neden kısıtlanıyor?" ve Schannel hatasının bir açıklaması ile devam edin.
Bernie White

0

Bu KeySpec = 2 - AT_SIGNATURE sorunu olabilir

certutil -verifystore -v KeySpec değerini doğrulamak için "sertifikanın parmak izi". 2 ise, sertifikayı PFX dosyası olarak dışa aktarmanız ve sonra düzeltmek için certutil -importpfx AT_KEYEXCHANGE çalıştırmanız gerekir.


Benim durumumda da sorun buydu. Aslında, bu cevap aslında sebebi göstermeye çalışan tek cevaptır. Ancak cevap, AT_SIGNATURE'ün ECDHE olmayan şifre süitleri için neden yeterli olmadığına dair bir açıklamadan fayda sağlayacaktır - çünkü bu tür süitler için RSA sadece kimlik doğrulama (imza) için değil, aynı zamanda anahtar değişimi için de kullanılır.
Jakub Berezanski
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.