Java Web サービス クライアントの開発中に、問題に遭遇しました。Web サービスの認証には、クライアント証明書、ユーザー名、およびパスワードが使用されます。Web サービスの背後にある会社から受け取ったクライアント証明書は.cer
フォーマットされています。テキスト エディターを使用してファイルを調べると、次の内容が含まれています。
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
このファイルを証明書として Internet Explorer にインポートし (パスワードを入力する必要はありません!)、それを使用して Web サービスでの認証を行うことができます。
まず最初と最後の行を削除し、UNIX 改行に変換して base64 デコードを実行することで、この証明書をキーストアにインポートすることができました。keytool
結果のファイルは、(コマンドを使用して) キーストアにインポートできます。キーストアのエントリを一覧表示すると、このエントリのタイプはtrustedCertEntry
. このエントリ タイプ (?) のため、この証明書を使用して Web サービスで認証することができません。提供された証明書は、認証に使用されている公開証明書であると考え始めています...
私が見つけた回避策は、証明書を IE にインポートし、.pfx
ファイルとしてエクスポートすることです。このファイルはキーストアとしてロードでき、Web サービスでの認証に使用できます。ただし、クライアントが新しい証明書を受け取るたびにこれらの手順を実行することは期待できません。.cer
したがって、ファイルをJavaに直接ロードしたいと思います。何かご意見は?
追加情報: Web サービスの背後にある会社は、後で証明書をインポートする PC とユーザーから (IE と Web サイトを使用して) 証明書を要求する必要があると私に言いました。