Debian 6.0 32bit sunucusunda SSL yapılandırırken sorun yaşıyorum. SSL konusunda nispeten yeniyim, bu yüzden lütfen benimle kalın. Elimden geldiğince çok bilgi ekliyorum.
Not: Sunucunun kimliğini ve bütünlüğünü korumak için gerçek alan adı değiştirilmiştir.
Yapılandırma
Sunucu nginx kullanarak çalışıyor. Aşağıdaki şekilde yapılandırılmıştır:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Sertifikamı burada açıklanan yöntemi kullanarak zincirledim
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
mysite.ca.crt
imza yetkilisi tarafından bana verilen sertifika nerede bundle.crt
ve CA sertifikası da imzalama yetkilim tarafından bana gönderiliyor. Sorun şu ki, SSL sertifikasını doğrudan GlobalSign'dan değil, bunun yerine barındırma sağlayıcım Singlehop'tan satın aldım.
Test yapmak
Sertifika, Safari ve Chrome'da doğru şekilde doğrulanıyor, ancak Firefox'ta değil. İlk arama, bunun CA ile ilgili bir sorun olabileceğini ortaya çıkardı.
Benzer bir sorunun cevabını araştırdım , ancak her sertifikanın hangi amaca hizmet ettiğini gerçekten anlamadığım için bir çözüm bulamadım.
Bağlantıyı test etmek için openssl'nin s_client'ını kullandım ve benzer soruyla aynı sorunu gösteren çıktı aldım . Hata aşağıdaki gibidir:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Openssl'nin yanıtının tam bir detayı (sertifikalar ve gereksiz bilgiler kesilerek) burada bulunabilir .
Şu uyarıyı da görüyorum:
No client certificate CA names sent
Sorunun bu olması mümkün mü? Nginx'in bu CA adlarını gönderdiğinden nasıl emin olabilirim?
Sorunu Çözme Girişimleri
Kök CA'yı doğrudan GlobalSign'dan indirerek sorunu çözmeye çalıştım, ancak aynı hatayı aldım. Debian sunucumdaki kök CA'ları update-ca-certificates
komutu kullanarak güncelledim , ancak hiçbir şey değişmedi. Bunun nedeni büyük olasılıkla sağlayıcımdan gönderilen CA'nın doğru olması, bu nedenle sertifikanın iki kez zincirlenmesine neden oldu, bu da yardımcı olmadı.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Sonraki adımlar
Lütfen deneyebileceğim bir şey varsa veya her şeyi yanlış yapılandırmışsam bana bildirin.
AlphaSSL CA - SHA256 - G2
. Ancak, zinciriniz ara ürün sağlarAlphaSSL CA - G2
. Mevcut ara sertifikayı (AlphaSSL CA - G2
) silmeniz ve parmak iziae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
) olanla değiştirmeniz gerektiğine inanıyorum . Ayrıca göndermenize gerek yokturGlobalSign Root CA
. Müşteri, güvenini kendilerinin (veya orta düzeyde) köklendirmelidir.