SSL Hatası: yerel yayıncı sertifikası alınamıyor


95

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.crtimza yetkilisi tarafından bana verilen sertifika nerede bundle.crtve 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-certificateskomutu 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.


10
Alan sertifikanız veren kuruluş tarafından imzalanmıştır AlphaSSL CA - SHA256 - G2. Ancak, zinciriniz ara ürün sağlar AlphaSSL CA - G2. Mevcut ara sertifikayı ( AlphaSSL CA - G2) silmeniz ve parmak izi ae: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.
jww

6
Bunu yerel olarak OpenSSL ile test edebileceksiniz. Deneyin openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>. Komut bir Verify OK (0)veya benzeri ile tamamlanmalıdır . Aldığınızda Verify OK (0), sunucu doğru şekilde yapılandırılmıştır (bu sorun için).
jww

6
Bu yeni ara ürünü indirdiğinizde, onu ile PEM'e dönüştürmeniz gerekecek openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM.
jww

Güzel. Şimdi işe yaradığına inanıyorum. Nedense SHA 256'yı almaya çalıştığımı düşündüm, ancak doğru şekilde dönüştürmeyi başaramamış olmalıyım. İçtenlikle teşekkür ederim.
Jamie Counsell

1
evet, aranacak şey, bir köke veya CA'ya geri dönen Konu-Verici çiftleridir. OpenSSL bunları olarak i:ve s:altında görüntüler s_client. İhtiyacınız olan sertifikaları aldıktan sonra , kök hariç hepsini birleştirin . Birleştirilmiş oldukları için PEM formatında olmaları gerekir. URL yardımcı oldu. Yerel olarak bakabilmemiz için bilgi sağlamayan insanlara yardım etmeye çalışmak eskiyor s_client. (URL'yi sağlamazsanız, kapatmaya oy verirdim).
jww

Yanıtlar:



-5

Linux kullanıcısıysanız Daha sonraki bir sürüme güncelleme düğümünü çalıştırarak

sudo apt update

 sudo apt install build-essential checkinstall libssl-dev

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash

nvm --version

nvm ls

nvm ls-remote

nvm install [version.number]

bu probleminizi çözmeli

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.