Stunelin tüm ara CA sertifikalarını göndermesini nasıl sağlayabilirim?


13

Birkaç bilgisayar, ancak çoğu değil, web sunucumdan SSL sertifikasını reddediyor. Sorun, bazı bilgisayarların CA sertifikalarını reddetmesi gibi görünüyor. Sorun, tamamen güncellenmediğinde Mac OS X 10.6'da ortaya çıkıyor gibi görünüyor.

Göre http://www.sslshopper.com/index.php?q=ssl-checker.html#hostname=beta.asana.com - hayır problem var.

Http://certlogik.com/sslchecker/ 'a göre , hiçbir ara sertifika gönderilmiyor.

Sertifikam Starfield Technologies'den ve ben buradan kullanıyorum sf_bundle.crt: certs.godaddy.com/anonymous/repository.seam

Sunucumda SSL ile stunnel üzerinden aşağıdaki işlemleri yapıyorum stunnel.conf:

cert = $CODEZ/admin/production/proxy/asana.pem
CAfile = $CODEZ/admin/production/proxy/sf_bundle.crt
pid =
client = no

[<forwarded port>]
accept = 443
connect = 8443

Ne yapabileceğime dair bir fikrin var mı?

Yanıtlar:


17

Bu CAFileseçenek bir CA'yı istemci kimlik doğrulama sertifikaları için kullanmak üzere yapılandırır; istediğin bu değil.

Bunun yerine, dosyayı certgeçerli tüm sertifika zincirini içerme seçeneğinde oluşturmak istersiniz . Bu dosyanın yedek bir kopyasını kaydetmek, ardından yeni bir kopya oluşturmak isteyeceksiniz; temel olarak şu şekilde biçimlendirilmiş iki dosyayı birleştirir:

-----BEGIN CERTIFICATE-----
(certificate from asana.pem file pasted here)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate here; copy-paste the top chunk from the bundle)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate here; copy-paste the bottom chunk from the bundle)
-----END CERTIFICATE-----

Bu, stunnel'i tam sertifika zincirini istemcilere sunmaya zorlayacaktır.

Bir başka tidbit; openssl s_clientKomut sertifika zinciri sorunlarını test ve servis onun sertifikalarını takdim nasıl kontrol için çok yararlıdır.

Düzenleme: Tamam .. Bu sertifika paketinin zinciri üç derin, ama güven zinciri iki derin görünüyor. Birşey doğru değil.

Üst sertifikası ( "Starfield güvenli sertifika yetkilisi") baş parmak ile başlayan "2 Sertifika Yetkilisi Starfield Sınıf" adlı bir veren tarafından imzalanır ad7e1c28ilk CERT en imzalayan, aynı aynen adlı .. ama paket içinde ikinci sertifika, hangi tam olarak aynı sertifika olmalı , ile başlayan parmak izine 363e4734ve 10 yıl önce sona erme tarihine sahip olmalıdır. Sonra üçüncü (kök) sertifika, dahil edilen ara sertifikanın imzalayanıdır.

Bu mantıklı gelmediyse endişelenme. Özet: özensiz iş, birisi bu sertifika paketini inşa ederek topu ciddi şekilde düşürdü. O zaman en iyi seçenek, zinciri başarıyla doğrulayan ve oradan listelediğim formata yapıştırarak bir tarayıcıdan base-64 formatında dosyaları dışa aktarmaktır.

Bu, kendi hatanız olmadan kafa karıştırıcı bir karışıklık olduğundan, DNS adınızı tahmin ettim ve sertifikayı aldım ve bence bu ihtiyacınız olan tüm zincir olmalı: http://pastebin.com/Lnr3WHc8


Teşekkürler bu süper yararlı oldu! Destek puanları olmadığım için oy kullanamıyorum, ancak :-)
Jack Stahl

@Jack Sorununuz çözüldüyse, düşük yanıtla bile yanıtı kabul edebilirsiniz. Gönderiyi, sağladıkları sertifika paketinin berbat olduğunu açıklamak için düzenledim.
Shane Madden

1

Qualys SSLLabs, değişikliklerden sonra yapılandırmanızı kontrol etmek için gerçekten kullanışlıdır.

https://www.ssllabs.com/ssldb/analyze.html

Sahip olduğunuz kontroller

  • güçlü şifreler etkin
  • zayıf şifreler devre dışı
  • sertifika zinciri eksiksiz ve doğru sırada

1

CAFile'ı da dahil etmek zorunda kalsam da, bu sorunla karşı karşıya kalan herkes için, Shane'in gönderisi hile yaptı. Ayrıca zinciri oluştururken, bu makaleye göre dosya adlandırma talimatlarını izlediğinizden emin olun.

Kullanmanız gereken dosya adını belirlemek için OpenSSL ile birlikte gelen c_hash programını kullanabilirsiniz ( /usr/local/ssl/miscdizinde):

c_hash some_certificate.pem
a4644b49.0 => some_certificate.pem

Yani, yukarıdaki durumda dosyayı yeniden adlandırırsınız a4644b49.0.
(Dosya adındaki noktadan sonra 'O' harfi değil, sıfır olduğunu unutmayın.)

Eğer yoksa c_hashprogramı size karma değerini belirlemek için uygun OpenSSL komutunu çalıştırabilirsiniz:

openssl x509 -hash -noout -in some_certificate.pem
a4644b49

Ve eğer bu problemle karşı karşıyaysanız bc android cordova ile websockets kullanmaya çalışıyorsanız, * sadece http ve https içerdiği için cordova-beyaz liste öğelerinize manuel olarak wss eklediğinizden emin olun.


Bağlantı verdiğiniz makalenin üstünde büyük bir kırmızı başlık var Bu sayfada amortisman var , bu bilginin, desteklendiği gibi veya yapılması gerektiği gibi yapılması gerektiği gibi doğru olduğundan emin misiniz? yazı?
avusturya

2
En azından alıntı yapılan kısım için olumlu. sertifika zincirini dosyanın karması olarak adlandırmazsanız, stunnel titrek bir şekilde takılır.
BrightEyed

Ayrıca, .0 eklemek bizim için gerekli değildi. Yazım düzeltmesi için teşekkürler btw, looooong gecesinden sonra gönderiyi güldürdü; D
BrightEyed

Müthiş, doğrulamayı duyduğuma sevindim. Anladım, şimdi üst üste 3. günüm. (11, sonra 14 saat, bugün 14 saat daha olabilir.)
austinian

1
Eeesh, BT hayalini yaşıyor: D
BrightEyed
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.