問題タブ [sslsocketfactory]
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.
android - HttpsURLConnection でプロトコルとして SSL を無効にする
POODLEの脆弱性のため、Amazon AWS でホストされている私のサーバーは SSLv3 をサポートしなくなりました。
その結果、私の Android アプリがサーバーに対して行う最初の HTTPS 接続は、接続が確立されているときにエラーになります。
エラーは最初のリクエストでのみ発生します。後続のリクエストはしばらくの間機能します。
これを修正するために、Android クライアントが受け入れるプロトコルのリストから SSL を削除し、TLS のみを使用するようにしています。これを行うために、有効なプロトコルとサポートされている暗号スイートのリストから SSL を削除するカスタム SSLSocketFactory を設定しました。
ご覧のとおり、私の SSLSocketFactory は別の SSLSocketFactory に委譲し、有効なプロトコルのリストから SSL を削除するだけです。
としてこの工場を設立
これで問題は解決しません。時々、接続が確立されたときにまだエラーが表示されます。奇妙なことに、これで問題は解決しませんが、明らかに問題の発生を最小限に抑えることができます。
Android クライアントの HttpsUrlConnection で強制的に TLS のみを使用するにはどうすればよいですか?
ありがとうございました。
java - SSL を使用してクライアントとサーバー間でデータが転送されない
これは私のサーバーコードです
}
================================================== ===============
これは私のクライアントコードです
=============================================
}
================================================== ==============
いくつかの提案をしてください...どうすればチャネル経由でデータを転送できますか?
java - SSLCertificateSocketFactory.getInsecure を使用して作成された SSLSocket で SSL 証明書の検証を有効にする方法
次のプロパティで SSLSocket を作成しようとしています。
- SSL証明書の検証を行う必要があります。
- カスタム SNI (サーバー名表示) を設定できるようにする必要があります。
私が理解したことから:
SSLCertificateSocketFactory.getDefault
カスタム SNI を設定することはできませんが、SSL 証明書の検証は行います。SSLCertificateSocketFactory.getInsecure
カスタム SNI を設定できますが、SSL 証明書の検証は行いません。
したがって、最善の解決策は、.xml を使用して作成された SSLSocket で SSL 証明書の検証を有効にすることSSLCertificateSocketFactory.getInsecure
です。
次のコードを使用してカスタム SNI を設定しています。
android - SSL ソケット接続を開けません
次のコードがあります。
DER でエンコードされた証明書「rootcert.der」があります。私が直面している問題は、次のコード行が実行されるときです。
次の例外が発生します。
誰かが上記の解決策を提案するのを手伝ってもらえますか?
android - SSL を使用した複数のクライアント サーバー要求
サーバー証明書を読み取り、サーバーへの SSLSocket 接続を行うコードがあります。以下は、高レベルのコードです。
今私の要件は、サーバーの応答を受信し、別のクライアント要求を送信することです。そのために、次のことをもう一度実行する必要がありますか?
または、単に以下のステートメントを呼び出すことができますか?
基本的に、コードを効率的にして、不要なソケット/HTTPS 呼び出しを行わないようにするにはどうすればよいでしょうか?
android - サーバー ソケットが閉じられない
特定の IP/ポートでリッスンしているサーバーがあります。彼らが開いたソケットは永続的であり、クライアントから CLOSE メッセージ、つまり ZERO バイトを受け取るまで閉じません。クライアントコードは次のとおりです。
上記のコードが実行されると、実際に Android アプリを終了するまで、サーバーは CLOSE メッセージを受信しません。
サーバーがクライアントから CLOSE メッセージを取得して他のクライアントへの接続を解放するように、私が何をする必要があるか教えてください。
もう 1 つの観察結果は、上記のコードを再実行、つまりコピー アンド ペーストして、もう 1 つの要求を順番に送信しようとすると、最初に開いたソケットを再利用できることです。一方、条件を削除すると:
コードを強制的に実行します。
次に、新しいソケットを作成し、SSL ハンドシェイクを再度行います。これは正常な動作ですか?