1

Flash Professional CC でパブリッシュされ、Flash Player13 用にパブリッシュされた AS3 フラッシュがあります。

問題は次のとおりです。RTMP サーバー (RED5 v1.1) への NetConnection を作成すると、次のエラー メッセージが表示されます: NetConnection.Connect.SSLHandshakeFailed。

私が使用しているコードは次のとおりです。

nc = new NetConnection();
nc.objectEncoding = ObjectEncoding.AMF3;
nc.client = this;
nc.proxyType = "best";
nc.addEventListener(NetStatusEvent.NET_STATUS, netSAServerRTMPStatus);
nc.connect("rtmps://myappserver.mydomain.com/myApp", myChannel);
private function netSAServerRTMPStatus(event:NetStatusEvent):void
{
     trace(event.info.code);
}

proxyType を設定しないか、他のオプションに設定した場合、接続は確立されませんが、「最適」に設定すると、接続を作成できる場合がありますが、常にではありません。

私のサーバーには、Geo Trust Inc によって署名された SSL 証明書があり、Common Name (CN) = *.mydomain.com です。

誰でも私を助けてもらえますか?必要に応じて、より多くの情報を提供できます。

よろしく、ピマー

4

1 に答える 1

0

ssl デバッグを有効にして、失敗したときに詳細を取得できます。このエントリを JAVA_OPTS に追加します。

-Djavax.net.debug=ssl

ログに次のようなエントリが表示されます。

javax.net.ssl.SSLHandshakeException: Client requested protocol TLSv1 not enabled or not supported

および/または

Exception caught on session: 1 id: EPP7XKEM0XUWC javax.net.ssl.SSLHandshakeException: SSL handshake failed.

示されているケースでは、TLSv1 がクライアントによって要求され、拒否されました。

アップデート

テストできるもう 1 つのことは、red5.sh のパラメーターを介してレガシーを有効にすることです。これらを JAVA_OPTS に追加します。

-Dsun.security.ssl.allowUnsafeRenegotiation=true -Dsun.security.ssl.allowLegacyHelloMessages=true

これらのパラメーターに関する情報は、こちらで確認できます。

于 2015-07-04T12:56:16.257 に答える