[解決済み】.cer証明書をjava keystoreにインポートする方法は?
質問
Javaウェブサービスクライアントの開発中に、ある問題にぶつかりました。ウェブサービスの認証には、クライアント証明書、ユーザー名、パスワードを使用します。ウェブサービスの背後にある会社から受け取ったクライアント証明書は、以下の場所にあります。
.cer
形式を使用します。テキストエディタで検査すると、以下のような内容になっています。
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
このファイルをInternet Explorerで証明書としてインポートし(パスワードを入力する必要はありません!)、それを使ってウェブサービスで認証することができます。
まず最初と最後の行を削除し、unixの改行に変換してbase64-decodeを実行することで、この証明書をkeystoreにインポートすることができました。出来上がったファイルは鍵ストアにインポートすることができます (
keytool
コマンドを実行します)。キーストアのエントリーをリストアップすると、このエントリーは以下のようなタイプになっています。
trustedCertEntry
. このエントリータイプのため(?)、この証明書を使用してウェブサービスと認証することができません。提供された証明書は、認証に使用されているパブリック証明書だと思い始めています...。
私が発見した回避策は、IE で証明書をインポートし、それを
.pfx
ファイルを作成します。このファイルはキーストアとして読み込むことができ、ウェブサービスでの認証に使用することができます。しかし、クライアントが新しい証明書を受け取るたびに、これらの手順を実行することを期待することはできません。そこで
.cer
ファイルを直接Javaに取り込むことができます。何かアイデアはありますか?
追加情報:ウェブサービスの会社は、証明書は、後で証明書をインポートするPCとユーザーから(IE & ウェブサイトを使用して)要求されるべきだと教えてくれました。
解決方法は?
- 認証したい場合は、秘密鍵が必要です - 他に方法はありません。
- 証明書とは、公開鍵に追加プロパティ(会社名、国名など)を加えたもので、添付プロパティが真であることを保証する何らかの認証局によって署名されたものです。
-
.CER
ファイルは証明書であり、秘密鍵は持っていません。秘密鍵は.PFX keystore
ファイルです。 本当に認証されるなら、すでに秘密鍵をインポートしていたことになります。 -
通常は
.CER
で問題なく証明書を発行できます。keytool -importcert -file certificate.cer -keystore keystore.jks -alias "Alias"
関連
-
[解決済み] init-paramとcontext-param
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] 文字列の巻き方
-
[解決済み】Java HTTPSクライアント証明書認証