.keystore
files とfilesの違いを見つけようとしました.jks
が、見つけられませんでした。jks
は「Java キーストア」用であり、どちらもキー/値のペアを保存する方法であることはわかっています。
違いや、どちらか一方を使用するほうが好ましいということはありますか?
ベストアンサー1
結局のところ、.keystore
と は.jks
単なるファイル拡張子です。ファイルに適切な名前を付けるかどうかはあなた次第です。
一部のアプリケーションは、 に格納されているキーストアファイルを使用します$HOME/.keystore
。これは通常、JKSファイルであることが暗黙的に示されています。JKSは、Sun/Oracle Javaセキュリティプロバイダのデフォルトのキーストアタイプでした。、Java 8 まで。JKS.jks
ファイルの拡張子はデフォルトとして暗黙的に使用されているため、すべての人が使用するわけではありません。Java 9以降、デフォルトのフォーマットはPKCS#12です。(多くの場合.p12
、 またはpfx
拡張機能付き) ですが、すべてのアプリケーションがその変更に追いついているかどうかは明らかではありません。 どちらのタイプを指定するかを覚えておくために (必要な場合)、拡張機能を使用することをお勧めします。
Java では、「キーストア」という単語は、コンテキストに応じて次のいずれかの意味を持ちます。
- API:https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/KeyStore.html
- このAPIをサポートするために使用できるファイル(またはその他のメカニズム)
- ここで説明されているように、トラストストアではなくキーストアです。https://stackoverflow.com/a/6341566/372643
ファイルとストレージについて言えば、これは実際にはキー/値のペアのストレージ機能ではありません (これにはさまざまな形式があります)。むしろ、暗号化キーと証明書を保存するためのコンテナーです (パスワードを保存できるものもあります)。通常、これらのファイルは暗号化され、パスワードで保護されているため、権限のない第三者がこのデータにアクセスすることはできません。
JavaはKeyStore
クラスと関連APIを使用してキーストア(ファイルベースかどうか) はJKS
Java 固有のファイル形式ですが、API は他のファイル タイプ (通常は PKCS#12) でも使用できます。キーストアをロードする場合は、そのキーストア タイプを指定する必要があります。従来の拡張子は次のようになります。
.jks
タイプの場合"JKS"
、.p12
または.pfx
タイプの場合"PKCS12"
(仕様名は PKCS#12 ですが、#
Java キーストア タイプ名では使用されません)。
さらに、BouncyCastleは、特にBKS(通常は.bks
拡張機能を使用)、Android アプリケーションでよく使用されます。