Server #1 (Openfire.Internal.MyDomain.Com) is inside network boundary. Server #2 (Server.Invalid.Foo) is in a DMZ network segment.
Server #1 can send Chat messages successfully, but does not recieve Presense / Online information from Server #2.
Server #2 cannot send Chat messages. Nor does it recieve Presense / Online information from Server #1.
If I drop the requirement for secure connections between servers, both servers can communicate successfully and send/recieve presense information properly. The problems only occur when I require TLS. Both servers have internal-CA signed certs installed for both RSA and DSA. All four certs appear within the admin console as being CA signed and have green checkmarks.
Server #1 Error Log:
2009.05.27 12:26:51 [org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSes sion(LocalOutgoingServerSession.java:258)
] Error trying to connect to remote server: foo(DNS lookup: foo:5269)
java.net.UnknownHostException: foo
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:253)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:185)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:239)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:216)
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)
Server #1 Warning Log:
2009.05.27 12:03:47 Closing session due to incorrect hostname in stream header. Host: internal.mydomain.com. Connection: org.jivesoftware.openfire.net.SocketConnection@1e74d83 socket: Socket[addr=/192.168.xxx.xxx,port=2716,localport=5269] session: null
Server #2 Error Log:
2009.05.27 12:03:40 [org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSes sion(LocalOutgoingServerSession.java:258)
] Error trying to connect to remote server: mydomain.com(DNS lookup: mydomain.com:5269)
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:253)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:185)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:239)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:216)
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)
Server #2 Warning Log:
2009.05.27 12:10:37 Closing session due to incorrect hostname in stream header. Host: invalid.foo. Connection: org.jivesoftware.openfire.net.SocketConnection@10eb2f0 socket: Socket[addr=/10.xxx.xxx.xxx,port=2453,localport=5269] session: null
I’d suspect DNS resolution given the errors, but these exact same servers work normally if I remove the requirement for TLS. Anyone?