[解決済み] JavaとSSL - java.security.NoSuchAlgorithmException
質問
サーバー上のデータベースのフロントエンドとしてJavaプログラムを構築し、クライアントとサーバー間のトラフィックを暗号化するためにSSLを使用しようとしています。 以下は、私がサーバー証明書を作成するために発行したコマンドです。
keytool -genkey -alias localhost -keyalg RSA -keypass kpass123 -storepass kpass123 -keystore keystore.jks
以下、該当するコードです。
System.setProperty("javax.net.ssl.keyStore",
"G:/Data/Android_Project/keystore.jks");
System.setProperty("javax.net.ssl.keyPassword", "kpass123");
SSLServerSocketFactory factory =
(SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
SSLServerSocket accessSocket =
(SSLServerSocket)factory.createServerSocket(DB_ACCESS_PORT);
これを実行しようとすると、このように表示されます。
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE、class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl) の構築に失敗しました。
また、quot;KeyPairGenerator"サービスにはDIFFIEHELLMAN、DSA、RSAのアルゴリズムがあり、quot;SSLContext"にはSSL、TLS、SSLV3、DEFAULT、TLSV1 のアルゴリズムがあることがわかりました。
SSLContext サービスに RSA をインストールする何らかの方法を見つける必要がありますか? 私は正しいサービスを見ているのでしょうか? RSAを使用しないほうがいいのでしょうか?
私はSSL - セキュリティ - 証明書全体について初心者なのですが、これらの異なるサービスが同じ証明書にアクセスするはずなのに同じアルゴリズムを持っていないことにただただ驚かされます。
解決方法は?
試す
javax.net.ssl.keyStorePassword
の代わりに
javax.net.ssl.keyPassword
: 後者は
JSSE参照ガイド
.
あなたが言及したアルゴリズムは、デフォルトのセキュリティ・プロバイダを使用することでデフォルトで存在するはずです。
NoSuchAlgorithmException
は、しばしば他の根本的な例外(ファイルが見つからない、パスワードが間違っている、鍵屋の種類が違う、...)によって引き起こされます。スタックトレースを見ることは有用です。
また
-Djavax.net.debug=ssl
または、少なくとも
-Djavax.net.debug=ssl,keymanager
スタックトレースの情報が十分でない場合、より多くのデバッグ情報を得ることができます。
関連
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ファインバグタイプ
-
プロローグでのコンテンツは禁止されています
-
JQuery DataTable 详解
-
サーブレットクラスのインスタンス化エラーの解決法
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
linux run jarfile Invalid or corrupt jarfile error.
-
Javaエラーメッセージがenclosingクラスでない
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
maven プラグイン エラー プラグインの実行は、ライフサイクル構成ソリューションの対象外です。