0

TL;DR: Keytool は、有効期限が 1 日未満の証明書のインポートを拒否します

長いバージョン: keytool に問題があります。openssl を使用してテスト目的で自己署名 CA および SUBCA 証明書チェーンを作成していますが、後で keytool にインポートする際に問題が発生します。

次の方法でCAを作成しています

openssl rand -out ./private/.rand 1024

openssl genrsa -out ./private/cakey.pem -aes256 -rand ./private/.rand 2048

openssl req -days 365 -subj '/C=US/ST=SM/O=Company/OU=Org/CN=ROOT_CA/emailAddress=whatever@whatever.com' -x509 -new -key ./private/cakey.pem -out cacert.pem -config openssl.cnf

次に、上記とまったく同じ方法で SUB_CA を作成し (別の CN)、次の方法でルート CA 証明書で署名します。

openssl ca -startdate 120524100000Z -enddate 120524101500Z -in ../sub_ca/subcareq.pem -out ../sub_ca/cacert.pem -extensions v3_ca -config openssl.cnf

(上記の証明書は 15 分間のみ有効です)

ここまではすべて問題ありません。この問題は、両方を JKS にインポートしようとすると発生します。ルート証明書は問題なくインポートされますが、SUB_CA では次の問題が発生します。

keytool -import -trustcacerts -alias subca -file sub_ca/cacert.pem -keystore keystore.jks

キーストアのパスワードを入力してください:

新しいパスワードを再入力してください:

keytool エラー: java.lang.Exception: 入力が X.509 証明書ではありません

それが完全に有効な証明書であるのに、なぜそれが言い続けるのか理解できません。証明書の開始日と終了日を変更し、代わりに署名時に有効期限として1 日(-days 1) を指定すると、問題なく jks にインポートされます。

keytool には、24 時間以上有効な X509 しかインポートできないなどの制限がありますか?

4

0 に答える 0