web-dev-qa-db-ja.com

.keystoreファイルと.jksファイルの違い

.keystoreファイルと.jksファイルの違いを見つけようとしましたが、まだ見つかりませんでした。 jksは「Javaキーストア」用であり、どちらもキー/値ペアを格納する方法であることを私は知っています。

あるものを他のものよりも使用するための違いまたは好みがありますか?

184
juveria

最終的に、.keystore.jksは単なるファイル拡張子です。賢明にファイルに名前を付けるのはあなた次第です。 $HOME/.keystoreに格納されているキーストアファイルを使用するアプリケーションもあります。 JKSがSun/Oracle Javaセキュリティプロバイダのデフォルトのキーストアタイプである であるため、通常はJKSファイルであることを意味します。すべての人がJKSファイルに.jks拡張子を使用するわけではありません。これはデフォルトとして暗黙に指定されているためです。どのタイプを指定するかを覚えておくために、拡張子を使用することをお勧めします(必要な場合)。

Javaでは、Wordキーストアは、コンテキストに応じて、次のいずれかの意味を持つことができます。

ファイルとストレージについて話すとき、これは実際にはキーと値のペアのためのストレージ機能ではありません(これにはたくさんのフォーマットや他のフォーマットがあります)。そうではなく、それは暗号化キーと証明書を保管するためのコンテナーです(それらのいくつかはパスワードを保管することもできると私は信じています)。一般に、これらのファイルは暗号化され、パスワードで保護されているため、このデータを不正な当事者が利用することはできません。

Javaはキーストアを使用するために KeyStore クラスと関連APIを使用します( ファイルベースかどうかにかかわらず )。 JKSはJava固有のファイル形式ですが、APIは他のファイルタイプ、通常はPKCS#12でも使用できます。キーストアをロードするときは、そのキーストアタイプを指定する必要があります。従来の拡張は次のようになります。

  • .jks型の"JKS"
  • タイプ.p12.pfxまたは"PKCS12"(仕様名はPKCS#12ですが、#はJavaキーストアのタイプ名には使用されません)。

さらに、BouncyCastleはその実装、特にAndroidアプリケーションで頻繁に使用される BKS (通常は.bks拡張子を使用)を提供します。

167
Bruno

あなたはこれについて混乱しています。

keystoreは、証明書、秘密鍵などのコンテナです。

このキーストアの形式を指定する必要があり、その主なものは #PKCS12

JKSはJavaのキーストア実装です。 BKSなどもあります.

これらはすべてキーストアタイプです。

だからあなたの質問に答えるために:

.keystoreファイルと.jksファイルの違い

なにもない。 JKSはキーストアファイルです。ただし、キーストアタイプには違いがあります。例えば。 JKS#PKCS12

64
Cratylus

.jksよりも.keystoreを選択する1つの理由は、キーストアファイルを選択するためにナビゲートしているとき、Unityが前者を認識し、後者は認識しないことです(Unity 2017.3、macOS)。

2
AbePralle