問題タブ [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.
java - SSLSocketFactory に setEnabledCipherSuites がないのはなぜですか?
SSLSocketFactory
getDefaultCipherSuites
(ソケットでデフォルトで有効になっている暗号) およびgetSupportedCipherSuites
(必要に応じて有効にできる暗号) を提供します。
ただし、暗号リストを一度構成して、後続のソケットを優先することはできSSLSocketFactory
ません。setEnabledCipherSuites
setEnabledCipherSuites
実際、中華鍋のフローは非常にSSLSocket
複雑になると思います。たとえば、HttpsURLConnection
は を提供せず、getSocket
このフローを実際に中断します。
や などSSLContext
のメソッドがあるので同じことが言えると思います。getDefaultSSLParameters
getSupportedSSLParameters
私は、(できない) 能力の健全なセキュリティ エンジニアリングの理由を考え出そうとしていますが、できません。おそらく、決定にはソフトウェア工学的な理由があります。(正当な理由があると思われますが、現時点ではそれを確認するための洞察が不足しています)。
Java に を構成する機能がないのはなぜSSLSocketFactory
ですか? これは明らかに設計上の決定であり、ライブラリの関連部分のセキュリティを犠牲にして行われた理由を理解しようとしています。
java - createServerSocket が java.net.SocketException を返す: ソケットが失敗しました: EACCES (許可が拒否されました)
sslContext.getServerSocketFactory().createServerSocket(port); を使用してサーバー ソケットを作成しようとしています。
しかし、例外の許可が拒否されました。以下は私の完全なコードです。
複数のポートを試しましたが、すべてで同じエラーが発生します。
以下は例外メッセージです。java.net.SocketException: ソケットが失敗しました: EACCES (許可が拒否されました)
websphere - Websphere 7 javax.mail.MessagingException: SSLSocketFactory が null です
SSL を使用して、Websphere 7 で実行されているメール サーバーに接続しようとしています。コードをスタンドアロン テストのメイン メソッドとして実行しても問題はありません。すべて問題なく動作します。Websphereでコードを実行しても問題ありません-メールサーバー(imap.seznam.czの例)に接続しますが、SSLを使用しない場合。SSL を使用したい場合は、次のように例外がスローされます。
javax.mail.MessagingException: SSLSocketFactory が null です。これは、ソケットを作成するために javax.net.ssl.SSLSocketFactory.getDefault() が呼び出され、javax.net.ssl.* プロパティが設定されていない場合に発生する可能性があります。ネストされた例外は次のとおりです。
javax.net.ssl.SSLException: SSLSocketFactory が null です。これは、ソケットを作成するために javax.net.ssl.SSLSocketFactory.getDefault() が呼び出され、javax.net.ssl.* プロパティが設定されていない場合に発生する可能性があります。
com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:571) で
javax.mail.Service.connect(Service.java:288)
コードの一部を次に示します。
パラメータはプロパティ ファイルから取得されます...
ssl true、imapServer imap.seznam.cz、imapPort 993
これは、SSLSocketFactory が null かどうかを確認するためだけのものであり、コードでは必要ありません
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); System.out.println(sslsocketfactory);
sslsocketfactory が null ではなく、タイプが com.ibm.websphere.ssl.protocol.SSLSocketFactory であることを確認できます。
私が試したのは:
- メール サーバーからの証明書を Websphere の信頼できるストアに保存しています (管理コンソールを使用して、サーバーのポートから読み取ると、そこに表示されます)
- ご覧のとおり、Websphereサーバーのプロパティとコードでいくつかのjavax.net.ssl.*プロパティを設定しましたが、必要ではないと思います
- 管理コンソールに表示されるように、Websphere が信頼ストアの場所から証明書を読み取っていると仮定します: ${CONFIG_ROOT}/cells/T431sNode03Cell/nodes/T431sNode03/trust.p12
Websphere の専門家がこの問題について私を助けてくれますか? 私はそれを数日修正しようとしていますが、成功しません:-(
前述したように、SSL を使用しない場合は Websphere で動作しますが、同じメール サーバー (たとえば、imap.seznam.cz、imap.gmail.com など) に SSL を使用する場合は実行されず、実行時に SSL で正常に動作します。スタンドアロンの Java アプリケーションとして Websphere の外部に配置します。
みんなありがとう!
アップデート:
Websphere でメールを構成する正しい方法を教えてくれた Gas に感謝します。だから私はそれをしました、私は組み込みのメールプロバイダーを使用しており、2つのメールセッションしか作成しませんでした
- 「imaps」プロバイダーを使用してSSLをサポートするもの
- 「imap」プロバイダーを使用した SSL サポートなしのもう 1 つ
両方のセッションで同じサーバーが定義され、デバッグが有効になっています。
Javaコードで私はこれをやっています:
興味深いことに、結果はまったく同じです。非 SSL セッションを使用している場合はすべて問題なく動作しますが、SSL セッションを使用している場合は次の例外が発生しました。
更新 2:
この例から新しいプロジェクトを作成しました。
http://www.mkyong.com/maven/how-to-create-a-web-application-project-with-maven/
メール セッション関連のコードのみをコントローラーに追加しました。
この新しい Web アプリをデプロイして呼び出すと、同じエラーが発生します。WEB-INF/lib には、Spring および Commons ロギングに関連する jar のみがあります。
これはサーバーの設定と関係があると思いますか?私は Websphere 7.0.0.31 を使用しています。メール サーバー証明書を管理コンソールの NodeDefaultTrustStore に追加し (ポートから読み取る)、そこで確認できます。
そして、これが私たちのプロジェクトで使用しているjarのリストです:
私のWASのjava.security設定から、これも役立つと思います:
java - 添付のコードを使用した SSLSocket 通信は安全ですか?
を使用してチャットサーバーとクライアントを開発しましたが、オンラインのどこかで通常の通信が攻撃に対して脆弱Sockets
であることを読むまで、すべてが順調でした。しばらくグーグルで調べた後、サンプルと実装 (以下のコード)を示すこのページSocket
に出くわしました。SSLServerSocket
SSLSocket
以下のコードの手順に従う場合、サーバーとクライアント間の通信が安全かどうかを知りたいです。
サーバーコード
クライアントコード