2011-04-18 22 views
34

cacerts ve jssecacerts dosyaları arasındaki farklar konusunda ciddi olarak kafam karıştı.Neden java'nın hem önek hem de jssecacerts dosyaları var?

Varsayılan olarak java'nın jssecacerts dosyasını ve ardından cacerts dosyasını görüntülediğini biliyorum.

jssecacerts dosyasının adı nedir?

Anlayışım, yeni bir güven deposunun kullanılması gerekiyorsa, cacerts kopyasının yapılması ve tüm yeni güvenilen CA'ların bu kopyaya eklenmesinin gerekmesidir. cacerts kopyasının (yeni CA'larla) daha sonra -Djavax.net.ssl.trustStore sistem özelliği tarafından başvurulması gerekir. Bu şekilde, o makinede çalışan diğer java uygulamaları, varsayılan olmayan CA'lara yanlışlıkla güvenmeyecektir.

+0

Gerçekten doğru olan 3 cevaptan hiçbirini bulamadınız mı? Doğru olduğunu düşündüğün kişiyi seçer misin lütfen? – JoeG

cevap

4

İyi soru. Bence JSSE'nin bir kez bir eklenti olduğu tarihsel gerçeğinden kaynaklanıyor. JSSE, birden fazla sağlayıcıya izin verir, bu nedenle belki de jssecacerts sadece JSSE sağlayıcısı içindir ve diğer sağlayıcılar kendi başlarına kullanabilir.

Ancak JSSE'den önce kepçe kullanan kişiler başka bir sorudur.

9

Anladığım kadarıyla, cacerts dosya sevk edilen varsayılan dosyadır.

jssecacerts dosya varsa, yalnızca cacerts dosyasına ek olarak kullanılmaz.

Benim önerim: cacerts dosyasını saklayın, jssecacerts'a kopyalayın ve jssecacerts dosyasına gereken özel CA/İmzalama eklerini ekleyin. Java™ Secure Socket Extension (JSSE) Reference Guide itibaren

+0

Bunun için, bir jssecacerts dosyası varsa, bir CA'ya sahip olmanın işe yaramadığını ve jssecacerts yerine eklenmesi gerektiğini öğrendim. –

+0

@EJP Gönderilen jssecacerts dosyasını "clobber" yapmıyorsunuz. Gönderilen jssecacerts dosyası yok. Jöleleri jssecacerts'e kopyalayarak Java jssecacerts yerine şimdi kullanacaktır. Artık jsecacerts 'den' keytool 'kullanarak Java ile birlikte gönderilen varsayılanları (cacerts) değiştirmekten endişe etmeden/uzak certs ekleyebilirsiniz. Değişiklikleri geri almak jssecacerts’i dizinden kaldırmak kadar kolaydır. – DeezCashews

22

, TrustManagerFactory güven materyali bulmak için denemek için aşağıdaki adımları kullanır:

  1. sistem özelliği javax.net.ssl.trustStore
  2. java-home/lib/security/jssecacerts
  3. java-home/lib/security/cacerts (varsayılan olarak sevk)

Bunu düşünmek konfigürasyon kavramı üzerinde sözleşmeye dayanmaktadır. Ek kodlama çabaları olmadan, cacert kullanılacaktır. Ekstra özel CA/İmzalama sertifikaları için, bir geliştirici ya birinci ya da ikinci yolu kullanabilir, eskide sadece belirli bir sertifika içerebilir ancak daha sonra bir liste listesi içerir.

+4

Bu nokta, 1, 2 veya 3'ü bulduğunda, yalnızca bunu kullanır, bu nedenle jssecacerts, kullanıldıkları takdirde TÜM belgelerin tümünü içermelidir. – JoeG

İlgili konular