SSLCertificateFile ve SSLCertificateChainFile? Arasındaki fark


35

Normalde sanal bir ana makineyle bir ssl aşağıdaki yönergelere göre kurulur:

Listen 443 

SSLCertificateFile /home/web/certs/domain1.public.crt
SSLCertificateKeyFile /home/web/certs/domain1.private.key
SSLCertificateChainFile /home/web/certs/domain1.intermediate.crt

Kimden: Bir sunucudaki muliple vhost'lara sahip tek bir alan için SSL'yi etkinleştirmek için bu yapılandırma işe yarayacak mı?

Arasındaki fark nedir SSLCertificateFileve SSLCertificateChainFile? Müşteri GoDaddy'den bir CA anahtarı satın aldı. GoDaddy yalnızca SSLCertificateFilebir (.crt dosyası) ve bir SSLCertificateKeyFile (.key dosyası) sunar ve görünmüyor SSLCertificateChainFile.

Benim ssl hala SSLCertificateChainFilebelirtilen bir yol olmadan çalışır mı?

Ayrıca, bu dosyaların yerleştirilmesi gereken kanonik bir yol var mı?


1
En sık ben sertifika dosyalarını koyarak insanlar olduğunu görmek için yerleştirir /etc/ssl, /usr/local/etc/sslya da bir yer sslweb sitesine alt dizin belirli (örn /home/www/example.com/dataweb sitesi sonra etmiştir home/www/example.com/sslcerts vardır).
Chris S,

Yanıtlar:


48

Açıkçası, SSL'nin çalışması için bir zincire hiç ihtiyacınız yoktur.

Her zaman ihtiyacınız olan şey , bu sertifika için doğru anahtarı içeren SSLCertificateFilebir SSLCertificateKeyFilekoddur.

Sorun, Apache'ye verdiğiniz tek şey sertifika ise, o zaman müşterilere bağlanmak için vermesi gereken tek şey sertifika - bu da bu SSL sertifikasıyla ilgili tüm hikayeyi anlatmıyor. "Birisi tarafından imzalandım, ama size onlardan bahsetmeyeceğim" diyor.

Bu, çoğu istemci sisteminin güven oluşturmak için eşleşen bir imzalama ilişkisini kontrol edebileceği geniş bir CA sertifikası deposuna (hem kök hem de ara) sahip olduğu için bu genellikle işe yarar. Ancak, bazen bu işe yaramıyor; En sık karşılaştığınız sorun, sertifikanızı imzalayan bir ara CA için sertifika sahibi olmayan bir müşteridir.

Zincirin girdiği yer; Apache'nin müşteriye tam olarak güven ilişkisinin nasıl göründüğünü göstermesini sağlar; bu da müşterinizin sertifika, güvendikleri bir kök ve bilmedikleri ara arasındaki boşlukları doldurmasına yardımcı olabilir. Zincir, yapılandırmanıza iki yoldan biriyle dahil edilebilir:

  • Sizin için ayarladığınızla aynı dosyaya SSLCertificateFile, sunucu sertifikasından sonraki yeni satırlara gömülür (kök altta olmalıdır). Bu şekilde ayarlarsanız, SSLCertificateChainFileaynı dosyaya işaret etmek istersiniz SSLCertificateFile.
  • Yönergede yapılandırılmış ayrı bir dosyada SSLCertificateChainFile; Sunucunun sertifikasını veren CA sertifikası ilk önce dosyada olmalı, ardından kökten başka biri tarafından takip edilmelidir.

Şu an sahip olduğunuz sertifika dosyasını kontrol edin - Bahse girerim, zincir verileri dahil değildir. Bu genellikle işe yarar, ancak sonuçta bazı tarayıcılarda veya diğerlerinde bir soruna neden olur.


2
Bence "genellikle iyi çalışıyor", ara ürün dahil edilmemişse, GoDaddy şirketlerine artık gerçekten uygulanmadığını düşünüyorum. Aslında, Verisign ve Thawte gibi adamlar için artık geçerli olup olmadığından bile emin değilim, çünkü sitenin tarayıcıda yer alan temel kaynaklardan daha uzak olmalarını sağladılar. Araları öldürmek daha kolay olduğu için iptal işlemini kolaylaştırdığını hayal ediyorum.
cjc

"SSLCertificateFile içine gömülü": Bunun çalışmasını diledim, ancak görünmüyor ve belgelerde belirtilmiyor. Zinciriniz konmalı SSLCertificateChainFile.
Steve Kehlet

@SteveKehlet Belgelenmemiş olduğu konusunda haklısınız, ancak geçmişte başarılı bir şekilde çalışmasını sağladım - hepsi bir arada dosyasını nasıl biçimlendirdiniz?
Shane Madden

1
@ SteveKehlet Aslında, haklısın, yanlış hatırladım; Bunun tek bir dosya için ayarlanmış vardı yolu ikisine birden sahip oldu SSLCertificateFileve SSLCertificateChainFiledoğru olduğunu cevabım Düzenlenen - işler aynı kombine dosyaya sivri.
Shane Madden

@ShaneMadden Güzel! İşe yarıyor! Bunu anladığınız için çok teşekkürler.
Steve Kehlet


4

Aslında GoDaddy size bir ara zincir veriyor:

http://support.godaddy.com/help/5238

İşte biraz daha tartışma.

http://support.godaddy.com/help/868/what-is-an-intermediate-certificate

GoDaddy'nin size yeni sertifikanızı nasıl indireceğinizi söyleyen e-postası, ara sertifika dosyası hakkında da bilgi verecektir. Belki dibe doğru bir yerde, belki gözleriniz dağıntı ve dağılma noktalarından süzüldükten sonra.

Uygun SSLCertificateChainFile yönergesini dahil etmezseniz ne olacağı konusunda: tarayıcınızda büyük bir kırmızı uyarı göreceksiniz, çünkü sitenizdeki sertifika zincirini takip edemedikleri için SSL siteniz tarayıcılarda doğrulanmayacaktır. Tarayıcının bildiği bir sertifika yetkilisine ait olana ait bir sertifika.


2

SSLCertificateChainFile hakkındaki önceki iyi cevaplara bu dosyadaki sertifikaların sırasının da önemli olduğunu eklemek isterim. OpenSSL tabanlı müşteriler siparişi kendileri çözeceklerdir, ancak gnutls tabanlı müşteriler yanlış sipariş zincirinde başarısız olacaktır.

Siparişi gnutls-cli ile yapın

gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p https wwwsec.cs.uu.nl

/etc/ssl/certs/ca-certificates.crt, dağıtımınızın birleştirilmiş sertifikaları koyduğu konumdur.

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.