2013-12-13 11 views
5

Linux linux e-posta sunucum için kendim imzalı bir sertifikam var. GlassFish ile bu e-posta sunucusuna erişmek için benim Java işlevlerini etkinleştirmek için, ben aslen yayınladı: sertifikanın süresi kadarNewbie keytool komutu - anahtar deponuza zaten eklenen cert nasıl güncellenir?

# keytool -importcert -v -noprompt -alias mail.mycompany.com -file /path/to/mail.mycompany.com.der -keystore /path/to/config/cacerts.jks -storepass changeit 
Certificate was added to keystore 

Bu, iyi çalıştı. Kendimi imzalı yeni bir sertifika oluşturmak zorundaydım ve şimdi Java, PKIX path validation failed … path does not chain with any of the trust anchors hatasını veriyor.

Bunu düzeltmeye çalışmak için, yeni exim cert'ten (orijinal olarak yapıldığı gibi) yeni bir mail.mycompany.com.der dosyası türetmiştim. Ancak yukarıdaki keytool komutunu verdiğimde (başlangıçta yapıldığı gibi), bu hata Certificate not imported, alias <mail.mycompany.com> already exists.

verir. Sorunun aynı anahtar komutunu kullanamayacağımı düşünüyorum. Sertifikayı anahtar deposuna eklemeyen farklı bir tane kullanmalıyım, ancak daha önce yeni bir sürümle birlikte sertifikayı günceller. Bu komut için beni doğru yöne yönlendiren var mı?

Bir kenara baktığımda eksik olan bazı otomatik işlemler var mı? Yani, sertifikanın süresi her zaman dolmaktadır. Bu, BT yöneticilerinin anahtar deposunu her zaman böyle bir kod kullanarak manuel olarak yeni sertifikalarla güncellemesi gerektiği anlamına mı geliyor? Ya da, bu bir şekilde otomatik olabilir mi?

cevap

17

Muhtemelen en basit yol, keytool'ün orijinal sertifikayı silip aynı bilgilerle yeni bir sertifika oluşturmasıdır. Bunun için iyi bir yol, küçük bir VM'niz varsa bunu yedekleyebilirsiniz EJBCA'yı kurmaktır. Bu biraz karmaşık, ama EJBCA, Java'da yazılmış ücretsiz, açık kaynaklı bir CA sunucusudur. Tüm sahte zincirlere sahip kendi sahte CA sertifikaları, kullanıcı sertifikaları, sunucu sertifikaları vb. Oluşturabilirsiniz. Ayrıca, bir kişinin geçerliliği sona erdikten sonra bir sertifikayı yeniden gönderdiğinizde, sizin için hızlı bir şekilde yeni bir JKS dosyası oluşturmak için oldukça iyi.

silmek için:

keytool -delete -keystore myfile.jks -alias 'alias_from_keytool_-list'

+0

Teşekkür gerçekten yardımcı olduğu kadar çok Mike! – ggkmath

İlgili konular