皆さん、こんにちは!
最近、keystoreファイルが必要になったので、その作成過程を載せておきます。
いままで、公開鍵&秘密鍵のペアは何度か作成してきましたが。。
keystoreファイルは作成したことがなかったので、どのように作成するのかがわかりませんでした。
自分用のメモとしても役に立つと思うので、ちょっと書いておきます。
環境
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
keytoolコマンドを使用できるようにする
keytoolコマンドに関しては、openjdkをインストールすれば使用できるようになります。
# yum install java-1.8.0-openjdk
keystoreファイルを作成してみる
以下はRSA鍵のkeystoreファイルを作成するコマンド。(1年間有効)
# keytool -genkey -v -keystore my-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 365
今回作りたかったのは、楕円曲線暗号で比較的短い署名を生成したかったので、以下のコマンドを実行してます。(1年間有効)
# keytool -genkey -v -keystore my-key.keystore -alias alias_name -keyalg EC -sigalg SHA256withECDSA -keysize 256 -validity 365
※validityの部分が有効期間です。ここでは1年間なので、356(日)を設定しています。
作成したkeystoreファイルの中身は以下で確認できます。
# keytool -v -list -keystore <keystore file name>
参考として、genkeyコマンドのオプションを張っておきます。
# keytool -genkey --help
keytool -genkeypair [OPTION]...
Generates a key pair
Options:
-alias <alias> alias name of the entry to process
-keyalg <keyalg> key algorithm name
-keysize <keysize> key bit size
-sigalg <sigalg> signature algorithm name
-destalias <destalias> destination alias
-dname <dname> distinguished name
-startdate <startdate> certificate validity start date/time
-ext <value> X.509 extension
-validity <valDays> validity number of days
-keypass <arg> key password
-keystore <keystore> keystore name
-storepass <arg> keystore password
-storetype <storetype> keystore type
-providername <providername> provider name
-providerclass <providerclass> provider class name
-providerarg <arg> provider argument
-providerpath <pathlist> provider classpath
-v verbose output
-protected password through protected mechanism
Use "keytool -help" for all available commands
参考
How can I create a keystore?
What are the steps to create a keystore for android? I need to use google maps in my app and I don't know what steps I missed. Please provide me with the specif...