9

次のコマンドでキーストアを作成しています。

keytool -genkey -keystore myStore.keystore -keyalg RSA -keysize 1024 -alias myAlias

有効期限が過ぎたものを生成するにはどうすればよいですか(これを使用しますか?期限切れの証明書を使用してアプリの動作をテストしたい)。

4

3 に答える 3

10

次のパラメータを使用して、keytoolコマンドを使用して期限切れの証明書を生成できます。

-開始日

-有効

有効性パラメーターは入力として日数しかかかりませんが、startdateパラメーターは、有効性が開始されたときから言及するために使用できます。startdateパラメーターへの入力の形式[yyyy/mm / dd] [HH:MM:SS]

詳細については、このリンクを参照してください http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html

于 2016-05-10T07:09:39.387 に答える
6

以下のopensslコマンドを使用して、証明書に署名するための公式プロセスを模倣した期限切れの証明書を生成できます。

:Linuxでのみテストされています。

自分をCAと見なします

#Create CA key, which means you are now the CA using root.key and root.cer to sign certificates
openssl genrsa 4096 > root.key
#Create CA certificate expired ten years later
openssl req -new -x509 -key root.key -out root.cer -days 3650

これで、CAからの署名付き証明書を適用するのはあなたです

#Generates your own private key 
openssl genrsa 4096 > server.key
#Build a Certificate Signing Request
openssl req -new -key server.key -out server.csr

今、あなたは再びCAです

#sign the certificate and make the certificate expired 1 day ago. Pay attention to the negative -days argument( not working on MacOS )
openssl x509 -req -in server.csr -CA root.cer -CAkey root.key -CAcreateserial -out server.cer -days -1

その後、日付を確認できます

openssl x509 -noout -text -in server.cer

Validity Not Before: Mar 7 09:11:13 2019 GMT Not After : Mar 6 09:11:13 2019 GMT

于 2019-03-07T09:30:28.473 に答える
3

java keytoolを使用すると、キーストア証明書の最小有効期間は1日です。

-startdate編集: @shyam0191が答えたようにオプションがあるようです。

したがって、過去の日付の証明書を生成することはできません(修正:実際に可能です) 。次のコマンドを使用することをお勧めします。これにより、有効期間が1日の証明書が生成され、翌日、それを使用してテストできるようになります。

keytool -selfcert -alias Test -genkey -keystore myStore.keystore -keyalg RSA -validity 1

または、@ shyam0191の回答を使用すると、最終的に同じ結果になります(ただし、より早くなります)。

于 2012-12-27T10:10:23.903 に答える