Troubleshooting AS2 connection problems - TCP RST being sent after TLS handshake










1















I've got an AS2 server application (RSSBus) running in IIS 7.5 on Windows Server 2008 R2. I have a few active connections that work fine over HTTP, but none that are working over HTTPS. There are two different trading partners where I have tried to establish an HTTPS connection, but they fail and the error message I receive from them are very similar. Note that I have an valid SSL certificate configured for the domain I am using and I am confident that is working just fine.



The errors I'm receiving from my trading partners lead me to believe the problem is a configuration error on my end, but I haven't been able to figure out the problem.



Below is one of the errors (I've redacted some identifying information):



2018/10/30 16:38:33 Run: type="API"
2018/10/30 16:38:35 Detail: "Using proxy http://xxxxxxxx:8080..." level=1
2018/10/30 16:38:35 Result: "Success" "Return status=0"
2018/10/30 16:38:35 Detail: "Connecting to https://www.yyyyyyyy.com:443..."
2018/10/30 16:38:35 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:38:35 transferID="AS2-20181030_163835722-J" docDBTransferID="37ede9ac-a23d-4ed6-85bc-879d4939a04f"
2018/10/30 16:38:35 HTTP: "POST /rssbus/pub/Receive.rsb"
2018/10/30 16:38:35 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
2018/10/30 16:38:35 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
2018/10/30 16:38:44 Exception: "java.io.EOFException: Connection closed by remote host.
at iaik.security.ssl.Utils.a(SourceFile:291)
at iaik.security.ssl.ab.b(SourceFile:452)
at iaik.security.ssl.ab.e(SourceFile:374)
at iaik.security.ssl.y.f(SourceFile:365)
at iaik.security.ssl.n.b(SourceFile:729)
at iaik.security.ssl.n.a(SourceFile:1509)
at iaik.security.ssl.y.d(SourceFile:784)
at iaik.security.ssl.SSLTransport.startHandshake(SourceFile:569)
at iaik.security.ssl.SSLSocket.startHandshake(SourceFile:386)
at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3094)
at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2910)
at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2702)
at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1148)
at com.cleo.lexicom.protocols.http.HTTP.post(HTTP.java:750)
at com.cleo.lexicom.beans.as2bean.HttpSender.prepareToSend(HttpSender.java:206)
at com.cleo.lexicom.beans.as2bean.SMimeClient.sendSignedThenCompressedAndEncryptedMessage(SMimeClient.java:2163)
at com.cleo.lexicom.beans.as2bean.SMimeClient.sendMessage(SMimeClient.java:364)
at com.cleo.lexicom.beans.as2bean.AS2Action.post(AS2Action.java:398)
at com.cleo.lexicom.beans.httpbean.HttpAction.issue(HttpAction.java:2602)
at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:1139)
at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:890)
at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:846)
at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:800)
at com.cleo.lexicom.beans.httpbean.HttpAction.putFileLoop(HttpAction.java:704)
at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:614)
at com.cleo.lexicom.beans.httpbean.HttpAction.macroCommand(HttpAction.java:461)
at com.cleo.lexicom.beans.LexActionBean.executeCommand(LexActionBean.java:4199)
at com.cleo.lexicom.beans.LexActionBean$LexBeanRunCommand.run(LexActionBean.java:4315)
at java.lang.Thread.run(Thread.java:748) "
2018/10/30 16:38:44 Hint: "Host did not send a complete response before closing connection."
2018/10/30 16:38:44 Result: "Exception" "java.io.EOFException: Connection closed by remote host."
2018/10/30 16:38:44 End


I've run wireshark during this connection test and I see that it goes through the normal connection process, but after I see "Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message" from the sender to my server, my server sends back [RST, ACK], as shown below:



Wireshark screenshot



I've looked at the connection timeout setting on my AS2 server and it's set to 60 seconds, which I believe is plenty long enough, and judging by the timestamps above, the reset is being sent almost immediately.



On my server, I have used the application IIS Crypto to enable only the "best practices" Protocols (TLS 1.0,1.1,1.2), Ciphers (3DES 168, AES 128/128, AES 256/256), Hashes (MD5, SHA, SHA 256, SHA 384, SHA 512), and Key Exchanges (Diffie-Hellman, PKCS, ECDH). It's possible that I have disabled something that my trading partners are using, but I know they're both using TLS 1.2 and I saw a Diffie-Hellman key in the Wireshark information, so I don't think that's the case either. However, my knowledge of this is very limited so I could be way off.



I'm really just trying to figure out where to look next. Is there something in Wireshark that I can use to figure out the problem? I've tried examining some of the frames, but haven't seen anything that's helped me much yet.



Note that the same exact connection test succeeds when I switch from HTTPS to http. That success test can be viewed below:



2018/10/30 16:28:37 Run: type="API"
2018/10/30 16:28:38 Detail: "Using proxy http://xxxxxx:8080..." level=1
2018/10/30 16:28:38 Result: "Success" "Return status=0"
2018/10/30 16:28:38 Detail: "Connecting to http://www.yyyyyyy.com:80..."
2018/10/30 16:28:38 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:28:38 transferID="AS2-20181030_162838070-J" docDBTransferID="d621b86f-0600-46bb-ac12-3cb5bb9e6203"
2018/10/30 16:28:38 HTTP: "POST /rssbus/pub/Receive.rsb"
2018/10/30 16:28:38 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
2018/10/30 16:28:38 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
2018/10/30 16:28:38 Detail: "Waiting for response..." level=1
2018/10/30 16:28:38 File: source="MDN" direction="Host->Local" destination="AS2/mdn/xxxxx/received/CLEO-20181030_212838173-44K62B@08925485US00_8436230-J_20181030-162838.mdn" number=1 of 1
2018/10/30 16:28:38 Response: "200 OK"
2018/10/30 16:28:38 Result: "Success" "Sent and Received Message Integrity Check codes match Source file copied to '/edi/mft/data/AS2/edi/xxxxx/sentbox/sendTest_X12_HY1139-MB8931_20181030-162838'."
2018/10/30 16:28:38 End









share|improve this question




























    1















    I've got an AS2 server application (RSSBus) running in IIS 7.5 on Windows Server 2008 R2. I have a few active connections that work fine over HTTP, but none that are working over HTTPS. There are two different trading partners where I have tried to establish an HTTPS connection, but they fail and the error message I receive from them are very similar. Note that I have an valid SSL certificate configured for the domain I am using and I am confident that is working just fine.



    The errors I'm receiving from my trading partners lead me to believe the problem is a configuration error on my end, but I haven't been able to figure out the problem.



    Below is one of the errors (I've redacted some identifying information):



    2018/10/30 16:38:33 Run: type="API"
    2018/10/30 16:38:35 Detail: "Using proxy http://xxxxxxxx:8080..." level=1
    2018/10/30 16:38:35 Result: "Success" "Return status=0"
    2018/10/30 16:38:35 Detail: "Connecting to https://www.yyyyyyyy.com:443..."
    2018/10/30 16:38:35 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:38:35 transferID="AS2-20181030_163835722-J" docDBTransferID="37ede9ac-a23d-4ed6-85bc-879d4939a04f"
    2018/10/30 16:38:35 HTTP: "POST /rssbus/pub/Receive.rsb"
    2018/10/30 16:38:35 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
    2018/10/30 16:38:35 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
    2018/10/30 16:38:44 Exception: "java.io.EOFException: Connection closed by remote host.
    at iaik.security.ssl.Utils.a(SourceFile:291)
    at iaik.security.ssl.ab.b(SourceFile:452)
    at iaik.security.ssl.ab.e(SourceFile:374)
    at iaik.security.ssl.y.f(SourceFile:365)
    at iaik.security.ssl.n.b(SourceFile:729)
    at iaik.security.ssl.n.a(SourceFile:1509)
    at iaik.security.ssl.y.d(SourceFile:784)
    at iaik.security.ssl.SSLTransport.startHandshake(SourceFile:569)
    at iaik.security.ssl.SSLSocket.startHandshake(SourceFile:386)
    at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3094)
    at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2910)
    at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2702)
    at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1148)
    at com.cleo.lexicom.protocols.http.HTTP.post(HTTP.java:750)
    at com.cleo.lexicom.beans.as2bean.HttpSender.prepareToSend(HttpSender.java:206)
    at com.cleo.lexicom.beans.as2bean.SMimeClient.sendSignedThenCompressedAndEncryptedMessage(SMimeClient.java:2163)
    at com.cleo.lexicom.beans.as2bean.SMimeClient.sendMessage(SMimeClient.java:364)
    at com.cleo.lexicom.beans.as2bean.AS2Action.post(AS2Action.java:398)
    at com.cleo.lexicom.beans.httpbean.HttpAction.issue(HttpAction.java:2602)
    at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:1139)
    at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:890)
    at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:846)
    at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:800)
    at com.cleo.lexicom.beans.httpbean.HttpAction.putFileLoop(HttpAction.java:704)
    at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:614)
    at com.cleo.lexicom.beans.httpbean.HttpAction.macroCommand(HttpAction.java:461)
    at com.cleo.lexicom.beans.LexActionBean.executeCommand(LexActionBean.java:4199)
    at com.cleo.lexicom.beans.LexActionBean$LexBeanRunCommand.run(LexActionBean.java:4315)
    at java.lang.Thread.run(Thread.java:748) "
    2018/10/30 16:38:44 Hint: "Host did not send a complete response before closing connection."
    2018/10/30 16:38:44 Result: "Exception" "java.io.EOFException: Connection closed by remote host."
    2018/10/30 16:38:44 End


    I've run wireshark during this connection test and I see that it goes through the normal connection process, but after I see "Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message" from the sender to my server, my server sends back [RST, ACK], as shown below:



    Wireshark screenshot



    I've looked at the connection timeout setting on my AS2 server and it's set to 60 seconds, which I believe is plenty long enough, and judging by the timestamps above, the reset is being sent almost immediately.



    On my server, I have used the application IIS Crypto to enable only the "best practices" Protocols (TLS 1.0,1.1,1.2), Ciphers (3DES 168, AES 128/128, AES 256/256), Hashes (MD5, SHA, SHA 256, SHA 384, SHA 512), and Key Exchanges (Diffie-Hellman, PKCS, ECDH). It's possible that I have disabled something that my trading partners are using, but I know they're both using TLS 1.2 and I saw a Diffie-Hellman key in the Wireshark information, so I don't think that's the case either. However, my knowledge of this is very limited so I could be way off.



    I'm really just trying to figure out where to look next. Is there something in Wireshark that I can use to figure out the problem? I've tried examining some of the frames, but haven't seen anything that's helped me much yet.



    Note that the same exact connection test succeeds when I switch from HTTPS to http. That success test can be viewed below:



    2018/10/30 16:28:37 Run: type="API"
    2018/10/30 16:28:38 Detail: "Using proxy http://xxxxxx:8080..." level=1
    2018/10/30 16:28:38 Result: "Success" "Return status=0"
    2018/10/30 16:28:38 Detail: "Connecting to http://www.yyyyyyy.com:80..."
    2018/10/30 16:28:38 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:28:38 transferID="AS2-20181030_162838070-J" docDBTransferID="d621b86f-0600-46bb-ac12-3cb5bb9e6203"
    2018/10/30 16:28:38 HTTP: "POST /rssbus/pub/Receive.rsb"
    2018/10/30 16:28:38 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
    2018/10/30 16:28:38 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
    2018/10/30 16:28:38 Detail: "Waiting for response..." level=1
    2018/10/30 16:28:38 File: source="MDN" direction="Host->Local" destination="AS2/mdn/xxxxx/received/CLEO-20181030_212838173-44K62B@08925485US00_8436230-J_20181030-162838.mdn" number=1 of 1
    2018/10/30 16:28:38 Response: "200 OK"
    2018/10/30 16:28:38 Result: "Success" "Sent and Received Message Integrity Check codes match Source file copied to '/edi/mft/data/AS2/edi/xxxxx/sentbox/sendTest_X12_HY1139-MB8931_20181030-162838'."
    2018/10/30 16:28:38 End









    share|improve this question


























      1












      1








      1








      I've got an AS2 server application (RSSBus) running in IIS 7.5 on Windows Server 2008 R2. I have a few active connections that work fine over HTTP, but none that are working over HTTPS. There are two different trading partners where I have tried to establish an HTTPS connection, but they fail and the error message I receive from them are very similar. Note that I have an valid SSL certificate configured for the domain I am using and I am confident that is working just fine.



      The errors I'm receiving from my trading partners lead me to believe the problem is a configuration error on my end, but I haven't been able to figure out the problem.



      Below is one of the errors (I've redacted some identifying information):



      2018/10/30 16:38:33 Run: type="API"
      2018/10/30 16:38:35 Detail: "Using proxy http://xxxxxxxx:8080..." level=1
      2018/10/30 16:38:35 Result: "Success" "Return status=0"
      2018/10/30 16:38:35 Detail: "Connecting to https://www.yyyyyyyy.com:443..."
      2018/10/30 16:38:35 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:38:35 transferID="AS2-20181030_163835722-J" docDBTransferID="37ede9ac-a23d-4ed6-85bc-879d4939a04f"
      2018/10/30 16:38:35 HTTP: "POST /rssbus/pub/Receive.rsb"
      2018/10/30 16:38:35 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
      2018/10/30 16:38:35 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
      2018/10/30 16:38:44 Exception: "java.io.EOFException: Connection closed by remote host.
      at iaik.security.ssl.Utils.a(SourceFile:291)
      at iaik.security.ssl.ab.b(SourceFile:452)
      at iaik.security.ssl.ab.e(SourceFile:374)
      at iaik.security.ssl.y.f(SourceFile:365)
      at iaik.security.ssl.n.b(SourceFile:729)
      at iaik.security.ssl.n.a(SourceFile:1509)
      at iaik.security.ssl.y.d(SourceFile:784)
      at iaik.security.ssl.SSLTransport.startHandshake(SourceFile:569)
      at iaik.security.ssl.SSLSocket.startHandshake(SourceFile:386)
      at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3094)
      at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2910)
      at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2702)
      at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1148)
      at com.cleo.lexicom.protocols.http.HTTP.post(HTTP.java:750)
      at com.cleo.lexicom.beans.as2bean.HttpSender.prepareToSend(HttpSender.java:206)
      at com.cleo.lexicom.beans.as2bean.SMimeClient.sendSignedThenCompressedAndEncryptedMessage(SMimeClient.java:2163)
      at com.cleo.lexicom.beans.as2bean.SMimeClient.sendMessage(SMimeClient.java:364)
      at com.cleo.lexicom.beans.as2bean.AS2Action.post(AS2Action.java:398)
      at com.cleo.lexicom.beans.httpbean.HttpAction.issue(HttpAction.java:2602)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:1139)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:890)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:846)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:800)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFileLoop(HttpAction.java:704)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:614)
      at com.cleo.lexicom.beans.httpbean.HttpAction.macroCommand(HttpAction.java:461)
      at com.cleo.lexicom.beans.LexActionBean.executeCommand(LexActionBean.java:4199)
      at com.cleo.lexicom.beans.LexActionBean$LexBeanRunCommand.run(LexActionBean.java:4315)
      at java.lang.Thread.run(Thread.java:748) "
      2018/10/30 16:38:44 Hint: "Host did not send a complete response before closing connection."
      2018/10/30 16:38:44 Result: "Exception" "java.io.EOFException: Connection closed by remote host."
      2018/10/30 16:38:44 End


      I've run wireshark during this connection test and I see that it goes through the normal connection process, but after I see "Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message" from the sender to my server, my server sends back [RST, ACK], as shown below:



      Wireshark screenshot



      I've looked at the connection timeout setting on my AS2 server and it's set to 60 seconds, which I believe is plenty long enough, and judging by the timestamps above, the reset is being sent almost immediately.



      On my server, I have used the application IIS Crypto to enable only the "best practices" Protocols (TLS 1.0,1.1,1.2), Ciphers (3DES 168, AES 128/128, AES 256/256), Hashes (MD5, SHA, SHA 256, SHA 384, SHA 512), and Key Exchanges (Diffie-Hellman, PKCS, ECDH). It's possible that I have disabled something that my trading partners are using, but I know they're both using TLS 1.2 and I saw a Diffie-Hellman key in the Wireshark information, so I don't think that's the case either. However, my knowledge of this is very limited so I could be way off.



      I'm really just trying to figure out where to look next. Is there something in Wireshark that I can use to figure out the problem? I've tried examining some of the frames, but haven't seen anything that's helped me much yet.



      Note that the same exact connection test succeeds when I switch from HTTPS to http. That success test can be viewed below:



      2018/10/30 16:28:37 Run: type="API"
      2018/10/30 16:28:38 Detail: "Using proxy http://xxxxxx:8080..." level=1
      2018/10/30 16:28:38 Result: "Success" "Return status=0"
      2018/10/30 16:28:38 Detail: "Connecting to http://www.yyyyyyy.com:80..."
      2018/10/30 16:28:38 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:28:38 transferID="AS2-20181030_162838070-J" docDBTransferID="d621b86f-0600-46bb-ac12-3cb5bb9e6203"
      2018/10/30 16:28:38 HTTP: "POST /rssbus/pub/Receive.rsb"
      2018/10/30 16:28:38 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
      2018/10/30 16:28:38 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
      2018/10/30 16:28:38 Detail: "Waiting for response..." level=1
      2018/10/30 16:28:38 File: source="MDN" direction="Host->Local" destination="AS2/mdn/xxxxx/received/CLEO-20181030_212838173-44K62B@08925485US00_8436230-J_20181030-162838.mdn" number=1 of 1
      2018/10/30 16:28:38 Response: "200 OK"
      2018/10/30 16:28:38 Result: "Success" "Sent and Received Message Integrity Check codes match Source file copied to '/edi/mft/data/AS2/edi/xxxxx/sentbox/sendTest_X12_HY1139-MB8931_20181030-162838'."
      2018/10/30 16:28:38 End









      share|improve this question
















      I've got an AS2 server application (RSSBus) running in IIS 7.5 on Windows Server 2008 R2. I have a few active connections that work fine over HTTP, but none that are working over HTTPS. There are two different trading partners where I have tried to establish an HTTPS connection, but they fail and the error message I receive from them are very similar. Note that I have an valid SSL certificate configured for the domain I am using and I am confident that is working just fine.



      The errors I'm receiving from my trading partners lead me to believe the problem is a configuration error on my end, but I haven't been able to figure out the problem.



      Below is one of the errors (I've redacted some identifying information):



      2018/10/30 16:38:33 Run: type="API"
      2018/10/30 16:38:35 Detail: "Using proxy http://xxxxxxxx:8080..." level=1
      2018/10/30 16:38:35 Result: "Success" "Return status=0"
      2018/10/30 16:38:35 Detail: "Connecting to https://www.yyyyyyyy.com:443..."
      2018/10/30 16:38:35 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:38:35 transferID="AS2-20181030_163835722-J" docDBTransferID="37ede9ac-a23d-4ed6-85bc-879d4939a04f"
      2018/10/30 16:38:35 HTTP: "POST /rssbus/pub/Receive.rsb"
      2018/10/30 16:38:35 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
      2018/10/30 16:38:35 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
      2018/10/30 16:38:44 Exception: "java.io.EOFException: Connection closed by remote host.
      at iaik.security.ssl.Utils.a(SourceFile:291)
      at iaik.security.ssl.ab.b(SourceFile:452)
      at iaik.security.ssl.ab.e(SourceFile:374)
      at iaik.security.ssl.y.f(SourceFile:365)
      at iaik.security.ssl.n.b(SourceFile:729)
      at iaik.security.ssl.n.a(SourceFile:1509)
      at iaik.security.ssl.y.d(SourceFile:784)
      at iaik.security.ssl.SSLTransport.startHandshake(SourceFile:569)
      at iaik.security.ssl.SSLSocket.startHandshake(SourceFile:386)
      at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3094)
      at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2910)
      at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2702)
      at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1148)
      at com.cleo.lexicom.protocols.http.HTTP.post(HTTP.java:750)
      at com.cleo.lexicom.beans.as2bean.HttpSender.prepareToSend(HttpSender.java:206)
      at com.cleo.lexicom.beans.as2bean.SMimeClient.sendSignedThenCompressedAndEncryptedMessage(SMimeClient.java:2163)
      at com.cleo.lexicom.beans.as2bean.SMimeClient.sendMessage(SMimeClient.java:364)
      at com.cleo.lexicom.beans.as2bean.AS2Action.post(AS2Action.java:398)
      at com.cleo.lexicom.beans.httpbean.HttpAction.issue(HttpAction.java:2602)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:1139)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:890)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:846)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFile(HttpAction.java:800)
      at com.cleo.lexicom.beans.httpbean.HttpAction.putFileLoop(HttpAction.java:704)
      at com.cleo.lexicom.beans.httpbean.HttpAction.put(HttpAction.java:614)
      at com.cleo.lexicom.beans.httpbean.HttpAction.macroCommand(HttpAction.java:461)
      at com.cleo.lexicom.beans.LexActionBean.executeCommand(LexActionBean.java:4199)
      at com.cleo.lexicom.beans.LexActionBean$LexBeanRunCommand.run(LexActionBean.java:4315)
      at java.lang.Thread.run(Thread.java:748) "
      2018/10/30 16:38:44 Hint: "Host did not send a complete response before closing connection."
      2018/10/30 16:38:44 Result: "Exception" "java.io.EOFException: Connection closed by remote host."
      2018/10/30 16:38:44 End


      I've run wireshark during this connection test and I see that it goes through the normal connection process, but after I see "Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message" from the sender to my server, my server sends back [RST, ACK], as shown below:



      Wireshark screenshot



      I've looked at the connection timeout setting on my AS2 server and it's set to 60 seconds, which I believe is plenty long enough, and judging by the timestamps above, the reset is being sent almost immediately.



      On my server, I have used the application IIS Crypto to enable only the "best practices" Protocols (TLS 1.0,1.1,1.2), Ciphers (3DES 168, AES 128/128, AES 256/256), Hashes (MD5, SHA, SHA 256, SHA 384, SHA 512), and Key Exchanges (Diffie-Hellman, PKCS, ECDH). It's possible that I have disabled something that my trading partners are using, but I know they're both using TLS 1.2 and I saw a Diffie-Hellman key in the Wireshark information, so I don't think that's the case either. However, my knowledge of this is very limited so I could be way off.



      I'm really just trying to figure out where to look next. Is there something in Wireshark that I can use to figure out the problem? I've tried examining some of the frames, but haven't seen anything that's helped me much yet.



      Note that the same exact connection test succeeds when I switch from HTTPS to http. That success test can be viewed below:



      2018/10/30 16:28:37 Run: type="API"
      2018/10/30 16:28:38 Detail: "Using proxy http://xxxxxx:8080..." level=1
      2018/10/30 16:28:38 Result: "Success" "Return status=0"
      2018/10/30 16:28:38 Detail: "Connecting to http://www.yyyyyyy.com:80..."
      2018/10/30 16:28:38 File: source="/edi/mft/harmony/sendtest/sendTest_X12" direction="Local->Host" number=1 of 1 fileSize=529 fileTimeStamp=2018/10/30 16:28:38 transferID="AS2-20181030_162838070-J" docDBTransferID="d621b86f-0600-46bb-ac12-3cb5bb9e6203"
      2018/10/30 16:28:38 HTTP: "POST /rssbus/pub/Receive.rsb"
      2018/10/30 16:28:38 Detail: "AS2-From: SenderAS2Id, AS2-To: ReceiverAS2Id, Subject: EDIINTDATA, Content-Type: X12"
      2018/10/30 16:28:38 Detail: "Sending signed and encrypted [TripleDES] message to ReceiverAS2Id..." level=1
      2018/10/30 16:28:38 Detail: "Waiting for response..." level=1
      2018/10/30 16:28:38 File: source="MDN" direction="Host->Local" destination="AS2/mdn/xxxxx/received/CLEO-20181030_212838173-44K62B@08925485US00_8436230-J_20181030-162838.mdn" number=1 of 1
      2018/10/30 16:28:38 Response: "200 OK"
      2018/10/30 16:28:38 Result: "Success" "Sent and Received Message Integrity Check codes match Source file copied to '/edi/mft/data/AS2/edi/xxxxx/sentbox/sendTest_X12_HY1139-MB8931_20181030-162838'."
      2018/10/30 16:28:38 End






      https tcp iis-7.5 wireshark edi






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Oct 31 '18 at 13:27







      Gage Trader

















      asked Oct 30 '18 at 22:34









      Gage TraderGage Trader

      173111




      173111






















          1 Answer
          1






          active

          oldest

          votes


















          0














          This question is 16 days old but I hope you're still around because you've found the right person. I deal with this kind of stuff all the time and it can be a real pain in the ass. The most important thing to remember is that although AS2 and HTTPS are insanely complicated, the actual options you have to play around with in RSSBus are pretty limited. Yes WireShark can help diagnosing some hairy issues, but there are many other places to look before you dive into WireShark with your fingers crossed.



          So let's start from the top, you have working HTTP connections and you're confident that the issues you're having are related to SSL.



          What exactly is it you're trying to do? It looks like you're trying to send files to the HTTPS URL of your partner, and you get the "Connection closed by remote host" from both partners. Can you receive files from them?



          I'm going to take a wild Hail Mary guess here and say that maybe the problem is incompatible SSL/TLS. RSSBus actually uses Windows Schannel for SSL, it is not built into the software (this is true for most AS2 software, they'd be silly not to). So your SSL capabilities are bound by Windows Server 2008 R2. So let's look it up: https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp-



          What does it say for 2008 R2? Only TLS 1.0 is enabled by default. TLS 1.1 and 1.2 are disabled. So unless you've enabled these manually, during the SSL handshake your trading partners server asks for TLS 1.2, and your Windows Server 2008 R2 says no thanks it's disabled, bye, connection closed. You're probably thinking "But Tom, I can see the TLS 1.2 box ticked in RSSBus!". My answer is "Get baited kid" because that's essentially what RSSBus told me (although their support team really is quite knowledgeable).



          How do you enable these? I dunno really, I've never done it successfully because I was using even older operating systems when I ran into this issue. I ended up moving to Windows 10 and calling it a day (this caused a problem with another trading partner's SSLv2, but that's another story). It shouldn't be too hard though, give it a Google and let me know how you go.






          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53073837%2ftroubleshooting-as2-connection-problems-tcp-rst-being-sent-after-tls-handshake%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            This question is 16 days old but I hope you're still around because you've found the right person. I deal with this kind of stuff all the time and it can be a real pain in the ass. The most important thing to remember is that although AS2 and HTTPS are insanely complicated, the actual options you have to play around with in RSSBus are pretty limited. Yes WireShark can help diagnosing some hairy issues, but there are many other places to look before you dive into WireShark with your fingers crossed.



            So let's start from the top, you have working HTTP connections and you're confident that the issues you're having are related to SSL.



            What exactly is it you're trying to do? It looks like you're trying to send files to the HTTPS URL of your partner, and you get the "Connection closed by remote host" from both partners. Can you receive files from them?



            I'm going to take a wild Hail Mary guess here and say that maybe the problem is incompatible SSL/TLS. RSSBus actually uses Windows Schannel for SSL, it is not built into the software (this is true for most AS2 software, they'd be silly not to). So your SSL capabilities are bound by Windows Server 2008 R2. So let's look it up: https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp-



            What does it say for 2008 R2? Only TLS 1.0 is enabled by default. TLS 1.1 and 1.2 are disabled. So unless you've enabled these manually, during the SSL handshake your trading partners server asks for TLS 1.2, and your Windows Server 2008 R2 says no thanks it's disabled, bye, connection closed. You're probably thinking "But Tom, I can see the TLS 1.2 box ticked in RSSBus!". My answer is "Get baited kid" because that's essentially what RSSBus told me (although their support team really is quite knowledgeable).



            How do you enable these? I dunno really, I've never done it successfully because I was using even older operating systems when I ran into this issue. I ended up moving to Windows 10 and calling it a day (this caused a problem with another trading partner's SSLv2, but that's another story). It shouldn't be too hard though, give it a Google and let me know how you go.






            share|improve this answer





























              0














              This question is 16 days old but I hope you're still around because you've found the right person. I deal with this kind of stuff all the time and it can be a real pain in the ass. The most important thing to remember is that although AS2 and HTTPS are insanely complicated, the actual options you have to play around with in RSSBus are pretty limited. Yes WireShark can help diagnosing some hairy issues, but there are many other places to look before you dive into WireShark with your fingers crossed.



              So let's start from the top, you have working HTTP connections and you're confident that the issues you're having are related to SSL.



              What exactly is it you're trying to do? It looks like you're trying to send files to the HTTPS URL of your partner, and you get the "Connection closed by remote host" from both partners. Can you receive files from them?



              I'm going to take a wild Hail Mary guess here and say that maybe the problem is incompatible SSL/TLS. RSSBus actually uses Windows Schannel for SSL, it is not built into the software (this is true for most AS2 software, they'd be silly not to). So your SSL capabilities are bound by Windows Server 2008 R2. So let's look it up: https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp-



              What does it say for 2008 R2? Only TLS 1.0 is enabled by default. TLS 1.1 and 1.2 are disabled. So unless you've enabled these manually, during the SSL handshake your trading partners server asks for TLS 1.2, and your Windows Server 2008 R2 says no thanks it's disabled, bye, connection closed. You're probably thinking "But Tom, I can see the TLS 1.2 box ticked in RSSBus!". My answer is "Get baited kid" because that's essentially what RSSBus told me (although their support team really is quite knowledgeable).



              How do you enable these? I dunno really, I've never done it successfully because I was using even older operating systems when I ran into this issue. I ended up moving to Windows 10 and calling it a day (this caused a problem with another trading partner's SSLv2, but that's another story). It shouldn't be too hard though, give it a Google and let me know how you go.






              share|improve this answer



























                0












                0








                0







                This question is 16 days old but I hope you're still around because you've found the right person. I deal with this kind of stuff all the time and it can be a real pain in the ass. The most important thing to remember is that although AS2 and HTTPS are insanely complicated, the actual options you have to play around with in RSSBus are pretty limited. Yes WireShark can help diagnosing some hairy issues, but there are many other places to look before you dive into WireShark with your fingers crossed.



                So let's start from the top, you have working HTTP connections and you're confident that the issues you're having are related to SSL.



                What exactly is it you're trying to do? It looks like you're trying to send files to the HTTPS URL of your partner, and you get the "Connection closed by remote host" from both partners. Can you receive files from them?



                I'm going to take a wild Hail Mary guess here and say that maybe the problem is incompatible SSL/TLS. RSSBus actually uses Windows Schannel for SSL, it is not built into the software (this is true for most AS2 software, they'd be silly not to). So your SSL capabilities are bound by Windows Server 2008 R2. So let's look it up: https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp-



                What does it say for 2008 R2? Only TLS 1.0 is enabled by default. TLS 1.1 and 1.2 are disabled. So unless you've enabled these manually, during the SSL handshake your trading partners server asks for TLS 1.2, and your Windows Server 2008 R2 says no thanks it's disabled, bye, connection closed. You're probably thinking "But Tom, I can see the TLS 1.2 box ticked in RSSBus!". My answer is "Get baited kid" because that's essentially what RSSBus told me (although their support team really is quite knowledgeable).



                How do you enable these? I dunno really, I've never done it successfully because I was using even older operating systems when I ran into this issue. I ended up moving to Windows 10 and calling it a day (this caused a problem with another trading partner's SSLv2, but that's another story). It shouldn't be too hard though, give it a Google and let me know how you go.






                share|improve this answer















                This question is 16 days old but I hope you're still around because you've found the right person. I deal with this kind of stuff all the time and it can be a real pain in the ass. The most important thing to remember is that although AS2 and HTTPS are insanely complicated, the actual options you have to play around with in RSSBus are pretty limited. Yes WireShark can help diagnosing some hairy issues, but there are many other places to look before you dive into WireShark with your fingers crossed.



                So let's start from the top, you have working HTTP connections and you're confident that the issues you're having are related to SSL.



                What exactly is it you're trying to do? It looks like you're trying to send files to the HTTPS URL of your partner, and you get the "Connection closed by remote host" from both partners. Can you receive files from them?



                I'm going to take a wild Hail Mary guess here and say that maybe the problem is incompatible SSL/TLS. RSSBus actually uses Windows Schannel for SSL, it is not built into the software (this is true for most AS2 software, they'd be silly not to). So your SSL capabilities are bound by Windows Server 2008 R2. So let's look it up: https://docs.microsoft.com/en-us/windows/desktop/secauthn/protocols-in-tls-ssl--schannel-ssp-



                What does it say for 2008 R2? Only TLS 1.0 is enabled by default. TLS 1.1 and 1.2 are disabled. So unless you've enabled these manually, during the SSL handshake your trading partners server asks for TLS 1.2, and your Windows Server 2008 R2 says no thanks it's disabled, bye, connection closed. You're probably thinking "But Tom, I can see the TLS 1.2 box ticked in RSSBus!". My answer is "Get baited kid" because that's essentially what RSSBus told me (although their support team really is quite knowledgeable).



                How do you enable these? I dunno really, I've never done it successfully because I was using even older operating systems when I ran into this issue. I ended up moving to Windows 10 and calling it a day (this caused a problem with another trading partner's SSLv2, but that's another story). It shouldn't be too hard though, give it a Google and let me know how you go.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Dec 14 '18 at 0:00

























                answered Nov 16 '18 at 3:22









                Tom BryantTom Bryant

                739




                739





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53073837%2ftroubleshooting-as2-connection-problems-tcp-rst-being-sent-after-tls-handshake%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Top Tejano songwriter Luis Silva dead of heart attack at 64

                    ReactJS Fetched API data displays live - need Data displayed static

                    Evgeni Malkin