2013-12-13 17 views
5

私は自分のlinux電子メールサーバーeximの自己署名証明書を持っています。 Java関数がGlassFish経由でこのメールサーバーにアクセスできるようにするには、もともと発行した:初心者のkeytoolコマンド - すでにキーストアに追加されているcertを更新する方法?

# 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 

証明書が期限切れになるまでうまくいきました。私は新しい自己署名証明書を作成しなければなりませんでした。そして、JavaはエラーPKIX path validation failed … path does not chain with any of the trust anchorsを出します。

これを修正しようとすると、私は新しいexim certから新しいmail.mycompany.com.derファイルを派生させました。しかし、上記のkeytoolコマンドを発行すると、エラーが発生します。Certificate not imported, alias <mail.mycompany.com> already exists.

私は同じkeytoolコマンドを使用することができないと思います。私は、証明書をキーストアに追加しない別のものを使用する必要がありますが、証明書を新しいバージョンで既に更新しています。誰でもそのコマンドの正しい方向に私を向けることができますか?

私が紛失している自動化プロセスはありますか?つまり、証明書の有効期限はいつもですか...それは、IT管理者が常にこのようなコードを使用して手動で新しい証明書をキーストアに更新する必要があるということですか?それとも、これは何とか自動化できますか?

答えて

17

おそらく最も簡単な方法は、keytoolに元のcertを削除し、同じ情報を持つ新しいcertを生成させることです。これを回避する良い方法は、小さなVMを持っている場合は、EJBCAをインストールすることです。まあまあですが、EJBCAはJavaで書かれた無料のオープンソースCAサーバーです。すべて独自の偽のCA証明書、ユーザー証明書、サーバー証明書などを作成することができます。期限切れになった後に証明書を再発行すると、すぐに新しいJKSファイルを生成することができます。

削除するには:本当に役立っていること

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

+0

本当にありがとうございましたマイクを、! – ggkmath

関連する問題