OpenSSL, Chrome tarafından gösterilene farklı SSL sertifikası döndürür


13

Sparkfun'un CDN url'sini aşağıdaki komutla OpenSSL kullanarak sorgularken:

openssl s_client -showcerts -connect dlnmh9ip6v2uc.cloudfront.net:443

Sertifikada döndürülen ortak ad *.sparkfun.comdoğrulanamadı, ancak ana makineyi Chrome'a ​​yüklerseniz gösterilen ortak ad*.cloudfront.net

Burada neler oluyor?

Bu sorun yaratıyor çünkü etki alanı için yerel olarak güvenilen CA tarafından imzalanmış bir sertifika üreten Squid SSL_Bump aracılığıyla proxy'lerde olduğum ortam. CN, yeni sertifika OpenSSL kullanılarak oluşturulduğundan bu eşleşmiyor, ancak yukarıda belirtilen tüm etki alanları için geçerlidir.

DÜZENLEME - Aynı olay, proxy veya filtreleme olmadan doğrudan Internet bağlantısı olan uzak bir veri merkezindeki bir sunucuda OpenSSL ile gerçekleştiğini doğruladım.

EDIT - Sorun SNI, kabul edildiği gibi, ancak neden Squid ve SSL_Bump ile ilgili bir soruna neden olduğuna ilişkin bilgileri doldurmaktan kaynaklanmaktadır:

Bu proje, SSL Sunucu Adı Gösterimi (SNI) bilgilerinin kaynak sunucuya iletilmesini desteklemeyecek ve bu desteği biraz daha zorlaştıracaktır. Bununla birlikte, SNI iletmenin, eklenen iletme zorluklarından çok daha ağır olan kendi ciddi zorlukları vardır (bu belgenin kapsamı dışında).

Alındığı yer: http://wiki.squid-cache.org/Features/BumpSslServerFirst

Yanıtlar:


23

CloudFront, tek bir IP'de birden çok sertifika kullanabilmenin bir yolu olan SNI kullanır. Tüm modern tarayıcılar, openssl'nin s_client komutunda olduğu gibi bunu destekler, ancak s_client bunu sihirli bir şekilde yapmaz. Kullanmasını söylemelisiniz:

openssl s_client -servername dlnmh9ip6v2uc.cloudfront.net  -connect dlnmh9ip6v2uc.cloudfront.net:443 -showcerts

2
Yaaay Dennis, bu benim " oooh, bilmiyordum " bugün SF için sıralandı ve henüz 09:00 bile değil! Benden +1.
MadHatter

9

Chrome , sunucuya hangi sertifikanın gönderileceğini söyleyen SNI'yi destekler . s_clientKomut yok.

CloudFront'un SNI kullanımıyla ilgili daha fazla ayrıntı burada .

SNI Özel SSL kullandığınızda, bazı kullanıcılar içeriğinize erişemeyebilir, çünkü bazı eski tarayıcılar SNI'yi desteklemez ve içeriğinizin HTTPS sürümünü yüklemek için CloudFront ile bağlantı kuramaz. Desteklenen tarayıcıların bir listesi de dahil olmak üzere SNI hakkında daha fazla bilgi için lütfen SSS sayfamızı ziyaret edin .

ve:

SNI Özel SSL, birden çok alan adının görüntüleyenlerin bağlanmaya çalıştığı ana bilgisayar adını ekleyerek aynı IP adresi üzerinden SSL trafiği sunmasını sağlayan Aktarım Katmanı Güvenliği protokolünün SNI uzantısına dayanır. Özel IP Özel SSL'de olduğu gibi, CloudFront, her Amazon CloudFront kenar konumundan ve Özel IP Özel SSL özelliğiyle aynı güvenlikle içerik sunar. SNI Özel SSL, Chrome sürüm 6 ve üstü (Windows XP ve üstü veya OS X 10.5.7 ve üstü), Safari sürüm 3 ve üstü (Windows Vista ve üstü veya Mac OS X 10.5 üzerinde çalışıyor) dahil olmak üzere çoğu modern tarayıcıyla çalışır. 6. ve üstü), Firefox 2.0 ve üstü ve Internet Explorer 7 ve üstü (Windows Vista ve sonraki sürümlerde çalışır). SNI'yı desteklemeyen eski tarayıcılar, içeriğinizin HTTPS sürümünü yüklemek için CloudFront ile bağlantı kuramaz.


s_client SNI gayet iyi destekliyor ...
Dennis Kaarsemaker

Gösterilen mükemmel belgelerden dolayı benden +1.
MadHatter

Ben demedim s_clientCLI desteklememektedir. s_clientKomutun (OP'de) olmadığını söyledim .
David Schwartz

@DavidSchwartz - Aslında OpenSSL istemcim SNI'yi destekliyor ve burada açıklanan bilgileri kullanarak doğrulayabilirim.
Geoffrey

@Geoffrey katılıyorum. OP'de SNI'yı desteklemeyen komuttur.
David Schwartz
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.