問題タブ [jsse]

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.

0 投票する
2 に答える
17296 参照

java - Java (JSSE) でデフォルトのキーストアを使用しているときに特定のトラストストアを提供するにはどうすればよいですか

概要

JSSE を使用すると、ユーザーは javax.net.ssl.* パラメータを指定して、デフォルトのトラスト ストアとキー ストアを提供できます。ユーザーが通常どおり KeyManager を指定できるようにしながら、アプリケーションにデフォルト以外の TrustManager を提供したいと考えていますが、これを実現する方法はないようです。

詳細

http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#CustomizingStores

UNIXマシンでは、ユーザーが認証にpkcs12キーストアを使用できるようにしたいのに対し、OS XIではユーザーがシステムキーチェーンを使用できるようにしたいとします。OS X では、アプリケーションは次のように起動できます。

これは正常に機能します。アプリケーションが相互認証 (クライアント証明書認証) を必要とする https サーバーにアクセスすると、ユーザーはキーチェーンへのアクセスを許可するように求められます。

問題

ここで、自己署名認証局をアプリケーションにバンドルしたいとします。TrustManagerFactory を作成し、証明書 ( javadoc )を含む KeyStore を渡すことで、デフォルトのトラスト マネージャーをオーバーライドできます。ただし、このデフォルト以外のトラスト マネージャーを使用するには、SSLContext を作成して初期化する必要があります。ここに問題があります。

SSLContext は、init(..)を呼び出し、KeyManager と TrustManager の両方を渡すことによって初期化されます。ただし、javax.net.ssl.* パラメータを使用して KeyManager を作成するためのロジックは、デフォルトの SSLContexts の実装に組み込まれています。デフォルト以外の TrustManager または TrustManagerFactory。したがって、たとえば、リモート サーバーを認証するためのルート証明書を提供しながら、適切なオペレーティング システム固有のキーチェーン実装を使用することはできないようです。

0 投票する
1 に答える
164 参照

java - TCP接続でリモートクライアントのステータスを制御する

タスクを実行するには、集中型サーバーと多数のリモートクライアントを備えたプラットフォームを作成する必要があります。私は現在RMI接続を使用しており、リモートクライアント(RMIサーバー)のクライアントとして機能する集中型サーバーです。動作していますが、近い将来に多くの問題が発生するのではないかと心配しています(RMIを使用するのは良い考えですか?)ので、コードをSSLSocketsに移動し、シリアル化されたクラスを送信して同じことを行うことを考えています。

このアプローチに関する私の問題は、アクティブなクライアントのリストを制御する方法です。タスクを送信するには接続データが必要であり、タスクが有効かどうかを知る必要があります。何か案が?

よろしくお願いします。

0 投票する
1 に答える
281 参照

java - 安全でないhttpのSSLSocketも?

httpセッションとhttpsセッションの両方にSSLServerSocketクラスを使用して、1つのポートをリッスンできますか(クライアントにhttpまたはhttpsが付属している自動検出を使用)?または、 2つのポートを開き、httpsにはSSLServerSocketを使用し、httpにはServerSocketを使用する必要がありますか?

ありがとう

0 投票する
3 に答える
1893 参照

java - javaのsslセッションでマスターキーを取得するにはどうすればよいですか?

アプリケーションのサーバーとして sslscoket があり、Java 1.6 を実行しています。MS-CHAP チャレンジ レスポンスなどを実装するために、ハンドシェイク中に使用されるマスター シークレット キーが必要です。「このマスター シークレットの値は、基盤となるセキュア ソケットの実装だけに知られており、SSLSession API を通じて公開されることはありません」と読みました。

マスター シークレットの値を取得するにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
35 参照

java - SSLSocketFactory は、Java で道路に費やされた時間を見つける

JavaのSSLソケットを使用してクライアント/サーバー接続を行っています。クライアントからサーバーに長い文字列を送信し、その文字列をサーバー側のテキスト ファイルに記録しています。これは本当に基本的なことです。

私がやりたいのは、その文字列をクライアントからサーバーに転送するのにかかる時間を知りたいということです。どうすればこの結果を達成できますか? 私にアドバイスをくれる人はいますか?私のコードを見る必要がある場合、このコードは私のコードと同じ構造を使用しています:クリック

助けてくれてありがとう。

0 投票する
2 に答える
3836 参照

java - STARTTLS を使用してソケットを SSLSocket にアップグレードしています: recv に失敗しました

STARTTLS を使用してソケットを SSLSocket にアップグレードしようとしています。InspIRCd の wiki では、このように動作するはずです

だから私が書いた私のコードでは(少し簡略化されています)

ただし、startHandshake() の有無にかかわらず、常に recv が失敗します (新しい bufferedReader から読み込もうとすると失敗するだけです)。

完全なログ (付き-Djavax.net.debug=all)

このエラーの原因となる間違ったことは何ですか? 他のクライアントが実行できるため、この機能が機能することはわかっていますが、Java から実行する方法がわかりません。

助言がありますか?

0 投票する
0 に答える
225 参照

ssl - SSLSocket は主に 3G 経由でブロックされますが、wifi 経由では機能します

ネットワークに関して非常に奇妙な問題があります。PC で実行されているサーバーに安全に接続する andorid アプリを作成しました。PC は NAT の背後にありますが、それぞれのポートは転送されていることに注意してください。また、ポート転送の問題を回避するために PC を DMZ に配置しました。

問題は、WIFI 経由でコードを使用すると完全に動作することですが、3G 経由ではほとんどの場合 (30 のうち 29) が SSLSocket の getOutputStream メソッドでブロックされます (サーバー側で受け入れが発生します)。

問題が何であるかを教えてください。

ありがとうございました

クライアントコード:

失敗ログ:

成功:

0 投票する
2 に答える
69 参照

java - サーバーに複数のトラストソースを追加する方法

私の質問は、この質問に関する Stackoverflowに多少関連しています。ただし、サーバーは単一のポートでリッスンします。サーバーは、クライアントの公開鍵証明書を自分自身で見つけた場合にのみ、クライアントを信頼します。サーバーが独自のファイルシステムを検索する公開鍵証明書(通常の安全でない接続上)の場合、クライアントに名前を送信してもらいたい。サーバーが証明書を見つけると、古い安全でないクライアント接続を SSL 接続に変換します。これは可能ですか?もしそうなら、どのように?