2013-12-13 4 views
5

Ich habe ein selbst signiertes Zertifikat für meinen Linux-E-Mail-Server Exim. Um meine Java-Funktionen zu ermöglichen über Glassfish diesen E-Mail-Server zugreifen zu können, die ich ursprünglich ausgegeben:Newbie keytool Befehl - Wie aktualisiere ich cert, das bereits zum Keystore hinzugefügt wurde?

# 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 

Das funktionierte gut, bis das Zertifikat abgelaufen. Ich musste ein neues selbstsigniertes Zertifikat erstellen und jetzt gibt Java den Fehler PKIX path validation failed … path does not chain with any of the trust anchors.

Um zu versuchen, dieses Problem zu beheben, habe ich eine neue mail.mycompany.com.der Datei aus dem neuen Exim cert abgeleitet (wie ursprünglich getan). Aber wenn ich den obigen keytool Befehl (wie ursprünglich getan) ausgibt, gibt es Fehler Certificate not imported, alias <mail.mycompany.com> already exists.

Ich denke, das Problem ist, dass ich den gleichen keytool Befehl nicht verwenden kann. Ich muss eine andere verwenden, die das Zertifikat nicht dem Schlüsselspeicher hinzufügt, sondern das bereits vorhandene Zertifikat mit einer neueren Version aktualisiert. Kann mir jemand in die richtige Richtung für diesen Befehl zeigen?

Als Nebenwirkung, gibt es einigen automatisierten Prozess, den ich vermisst habe? Das heißt, CERTs die ganze Zeit abläuft ... bedeutet, dass IT-Administratoren müssen immer den Schlüsselspeicher aktualisieren mit den neuen Zert manuell Code wie folgt verwenden? Oder kann das irgendwie automatisiert werden?

Antwort

17

wahrscheinlich einfachste Weg wäre, das Original-Zertifikat haben keytool zu löschen und ein neues Zertifikat mit den gleichen Informationen zu generieren. Ein guter Weg, um dies zu umgehen, wenn Sie eine kleine VM haben, die Sie dafür haben können, ist EJBCA zu installieren. Es ist irgendwie klobig, aber EJBCA ist ein freier, Open-Source-CA-Server in Java geschrieben. Sie können Ihre eigenen gefälschten CA-Zertifikate, Benutzerzertifikate, Serverzertifikate usw. erstellen, die alle Vertrauensketten haben. Außerdem ist es ziemlich gut für das schnelle Erzeugen einer neuen JKS-Datei für Sie, wenn Sie ein Zertifikat nach dem Ablaufdatum erneut ausstellen.

zu löschen:

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

+0

Vielen Dank Mike, dass mir sehr geholfen! – ggkmath

Verwandte Themen