問題タブ [truststore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java SSL トラストストアの設定
1 つのアプリケーションで、SSL による 3 つの異なる接続を使用しています。そのうちの 2 つは証明書に署名していますが、1 つは認証に使用しています。
質問は - 次の接続が新しいサーバーの証明書を使用するように、接続の最後にこれらの設定を削除する方法は?
java - 同じJVMに複数のトラストストアを設定する
weblogicサーバーでJavaアプリケーションを実行しています。アプリケーションには、SSLを使用して外部Webサービスに接続する2つの異なるモジュールがあります。たとえば、モジュールAとモジュールBです。
モジュールA-Axis上に構築-トラストストアAを使用MoudleB-Spring-ws上に構築-トラストストアBを使用
モジュールAが存在します。モジュールBが導入されています。
呼び出されているモジュールに基づいて、JVMでトラストストアを動的に設定できる必要があります。
いくつかの制約のため、カスタムキーマネージャーを作成するオプションがありません。-1つのトラストストアを使用します
System.setPropertyimモジュールBコードベースを使用してトラストストアを設定しようとしました。ただし、モジュールBが最初に呼び出された場合にのみ機能します。たとえば、-JVMを新たに再起動した後、モジュールAを呼び出します-JVMに独自のトラストストアを設定し、次にモジュールBを呼び出します-失敗します-使用したにもかかわらず、JVMに独自のトラストストアを設定しませんSystem.setPropertyメソッド。
何かが足りないのでしょうか、それともSystem.setPropertyが既存の設定値を上書きしないだけなのですか。もしそうなら、ここで私のオプションは何ですか。
jboss - Javaアプリケーションサーバー用のカスタムSSLTrustManager
B2BであるWebサービスのSSL接続をセットアップしようとしていますが、サーバーでクライアント認証を行う必要があります。サーバーは、通常のユーザーからブラウザーを介してアクセスできるURLをホストするため、ホストへのすべての接続でclient-authを実行する必要はありません。特定のURLのみが、呼び出し元のX509証明書を検証するためにclient-authを必要とします。Tomcat5.xに基づくJBoss5.xを使用しているので、次のようなコネクタ構成があります。
ご覧のとおり、署名付き証明書を提供できるようにキーストアを構成し、client-authを必要とする特定のURLが次のようにweb.xmlで構成されるため、clientAuth=falseを使用します。
カスタムJAASログインモジュールを介して、上記のコネクタ構成でこれを実際に機能させることができます。また、クライアント証明書を持つトラストストアを指定します。それが私の問題です。アプリケーションのセットアップとスケーリングの方法を考えると、各jbossアプリケーションサーバーのセットアップはユーザーの特定のセジェンテーションをサポートしており、ファイルシステムのいたるところにトラストストアを設定したくありません。信頼できる証明書をデータベースからコードに動的にロードする必要があります。カスタムJAASログインモジュールはこれをWebレベルで実行し、役割も割り当てますが、コネクタトラストストアがないと、ログインモジュールが呼び出されることはなく、HTTPが関与する前にSSLレベルで接続が終了します。
Webで多くの調査を行った結果、これを回避するには、SSLContext/SSLSocketFactoryで構成されたカスタムX509TrustManagerが必要であると判断しました。このカスタムトラストマネージャーは、データベースに保存されているものからクライアント証明書を検証します。このカスタムトラストマネージャーを作成しましたが、接続できないようです。jbossまたはtomcat5.xでこれを設定する方法を知っている人はいますか?Tomcat 7で、次の構成がコネクター、trustManagerClassNameで使用可能であることに気付きましたが、それは私にとってオプションではありません。私はそれが可能だと思います、どんな助けでも大歓迎です。
java - トラストストアは、認証のためにCAの証明書も必要ですか?
WSO2ESB4.0.0とApplicationServer4.1.0を使用して、SSLを介して相互に通信しています。どちらも同じキーストアで構成されています。両方とも異なるサーバー上にあります。これは、WSASがESBとのみ通信するためです。私の証明書は自己署名されていません。
私の質問は; WSASがESBとのみ通信するために、CAの証明書をWSASのトラストストアにインポートする必要もありますか?これで信頼の鎖が完成すると思いますか?
CAの証明書をインポートしないと、WSASログに次の情報が記録されます。
ありがとうございました
java - javax.net.ssl.SSLException:java.security.InvalidAlgorithmParameterException:trustAnchorsパラメーターは空でない必要があります
私はそのファイルを毎日更新するXMLファイルを解析しようとしています-私が遭遇した唯一の問題は、それらが独自の証明書(https:// ..。)を使用し、その特定のURLを使用できないことです。利用可能なhttp://...リンクはありますか。
このコードは、テストの実行中に次の例外をスローします。
javax.net.ssl.SSLException:java.lang.RuntimeException:予期しないエラー:java.security.InvalidAlgorithmParameterException:trustAnchorsパラメーターは空でない必要があります
この種の接続やパーソナルサーバーを処理するためのさまざまなクラスの作成、および証明書をキーストアに追加してからそのキーストアをJavaプロジェクトに追加することに関するさまざまな提案を見てきましたが、私はそれができず、オンラインでXMLにアクセスするためのもう少し簡単な方法を探しています。
java - JVM トラスト ストア内の証明書の一覧表示
システム プロパティを介してカスタム トラストストアを定義しました。
VM が既にファイルの読み込みを処理していることを考えると、読み込まれた証明書を一覧表示したいと思います。トラストストアをストリームにもう一度ロードしてそこから証明書を取得したくはありませんが、VM が既にそれ自体でロードした証明書を確認したいと考えています。また、別のツールを使用するのではなく、自分のアプリケーション内からそれらを表示したいと考えています。私はいくつかのグーグルをしましたが、これまでのところ私はこれを見つけることができませんでした.
java - トラストストアを使用したJavaSSL接続
httpsサイトに接続するWebアプリケーションがあります。そのためには、lib/securityフォルダーのcacertsに証明書をインストールする必要があります。トラストストアを作成してアプリケーション内に配置し、他のサイトに接続しているときに、アプリケーションがこのトラストストアを参照するようにして、アプリケーションが移動したときに証明書も一緒に移動するようにします。
httpsサイトに接続する方法は、フォーム投稿を使用することです。どうすればこれを行うことができますか。また、HttpsURLConnectionを使用せずにフォーム投稿を行う場合、cacertsの代わりにカスタムトラストストアを調べるように構成する方法。
java - Java(カスタム)トラストストアで複数のエントリを管理する
私はいくつかの関連する質問を読みましたが、それらのどれも本当に私を助けません。それでは、少し背景を説明しましょう。私は、登録、投票カードの交換、および投票を管理するサーバーが2つある投票システムを作成しています。登録ユーザーが個人データを送信する間、サーバーはデータがデータベース内のデータと一致するかどうかを確認し、ユーザーの証明書を受け入れて、次のようにトラストストアに追加します。
次に、trustStoreをファイルに保存します。登録中に多くのユーザーが証明書を登録してから、クライアントとサーバーの両方の認証を要求する別のサーバーに接続すると、ここで問題が発生します。この「他のサーバー」は前述のtrustStoreを使用してユーザーとSSLHandshakeを実行できると思いましたが、trustStoreは「最後に登録したユーザーのみを記憶しているようです」。私は次のようにSSLServerSocketを作成しています:
前に述べたように、両側認証は正常に機能しますが、trustStoreの最後のエントリに対してのみ機能します。それで、最後に私の質問は-ユーザーごとに個別のtrustStoreを作成する必要がありますか?TrustManagerをオーバーロードする必要がありますか?基本的に、SSLContext / SSLEngineですべての信頼できる証明書を反復処理し、一致する証明書が見つかった場合にハンドシェイクを実行する方法はありますか?
アップデート
いくつか明確にする必要があると思います。まず第一に、これはWebアプリケーションではなく、通常のクライアントサーバーJavaSwingアプリです。使用されるすべての証明書(サーバーまたはクライアント)は自己署名されていますが、サーバーの証明書はクライアントアプリケーションに組み込まれているため、クライアントがサーバーに接続すると、証明書を比較できます(機能します)。ブルーノが提案したのとまったく同じように解決しようとしました。ユーザーが登録した後、サーバーはデータが有効かどうかを確認し、有効な場合はクライアントに新しい証明書を発行し、トラストストアに追加してクライアントに送信します。しかし、それは最後に登録されたクライアントでも機能しませんでした。