Hi,
If I am accessing flex AIR application from Mac or iOS (iPad) using secure rtmp then it gives me error. It is not able to connect to the server. I have a self signed certificate generated using java keytool. I have configured it on tomcat and it works for the ssl in browser with https://localhost:8080, but fails when using rtmps from flex application especially in Mac and iPad. It works in Android tablet and windows machine though.
Here is the configuration in I gave in the server for ssl.
<server id="secure-nio-server" class="flex.messaging.socketserver.SocketServer">
<properties>
<keystore-file>D:/keystore.jks</keystore-file>
<keystore-password>password</keystore-password>
</properties>
</server>
<channel-definition id="mobility-rtmp"
class="mx.messaging.channels.SecureRTMPChannel">
<endpoint url="rtmps://{server.name}:@flex.rtmp.port@"
class="flex.messaging.endpoints.SecureRTMPEndpoint"/>
<server ref="secure-nio-server">
<properties>
<idle-timeout-minutes>20</idle-timeout-minutes>
<!-- for deployment on WebSphere, must be mapped to a WorkManager available in the web application's jndi context.
<websphere-workmanager-jndi-name>java:comp/env/wm/MessagingWorkManager</websphere-workman ager-jndi-name>
-->
</properties>
</server>
</channel-definition>
Here is the exception I am getting on server side.
INFO: [LCDS] 01/21/2012 17:14:44.258 [ERROR] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] failed to read Connection '521330370' or process the data; Connection is in the 'Handshaking' state and will be forced closed.
javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(Unknown Source)
at flex.messaging.socketserver.SSLConnection.handshake(SSLConnection.java:298)
at flex.messaging.socketserver.Connection$ConnectionReader.run(Connection.java:845)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Jan 21, 2012 5:14:44 PM org.apache.catalina.core.ApplicationContext log
INFO: [LCDS] 01/21/2012 17:14:44.258 [DEBUG] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] Connection '521330370' has changed state to: Closing
Jan 21, 2012 5:14:44 PM org.apache.catalina.core.ApplicationContext log
INFO: [LCDS] 01/21/2012 17:14:44.258 [DEBUG] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] closing Connection '521330370'.
Jan 21, 2012 5:14:44 PM org.apache.catalina.core.ApplicationContext log
INFO: [LCDS] 01/21/2012 17:14:44.258 [DEBUG] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] Connection '521330370' has changed state to: Closed
Jan 21, 2012 5:14:44 PM org.apache.catalina.core.ApplicationContext log
INFO: [LCDS] 01/21/2012 17:14:44.258 [DEBUG] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] closed Connection '521330370'.
Jan 21, 2012 5:14:44 PM org.apache.catalina.core.ApplicationContext log
INFO: [LCDS] 01/21/2012 17:14:44.258 [DEBUG] [SocketServer.General] Thread[secure-nio-server-WorkerThread-2,5,main] Connection '521330370' finished a read. -1 bytes were read.
Please help.
Thanks,
Swathi.