Eileen Murphy
asked on
Support for TLS 1.0 protocols
Hi Experts! I am once again asking for help on how to do something in .net (Visual Studio) for a client who has an application they use for accessing the UPS website through an API.
UPS has upgraded all their servers and have deprecated support for TLS1.0. Here is a link to more information about this issue: https://www.ups.com/us/en/help-center/technology-support/data-security.page
I need to reference the TLS 1.1 or 1.2 protocols and re-build this application for them. I need some direction on #1 - how to find the correct reference file and #2 how to make the change (which I think I may have figured out how to do)
UPDATE: Here is what UPS sent out this morning...
In order to be in compliance with requirements set forth by the global Payment Card Industry, UPS has upgraded the communication security protocols for all web-based applications.
Please contact your company's IT department or development team to ensure that any security protocols currently used meet the TLS 1.2 requirement. If Java is enabled, it must be version 1.7 or higher to use TLS 1.2.
Effective January 18, 2018, UPS will only accept TLS 1.1 and TLS 1.2 security protocols. It is highly recommended that the most current version, TLS 1.2, be implemented.
100% of requests from customers who are on TLS 1.0 while using legacy URLS (www.ups.com/tool name) will be rejected.
100% of requests from customers who are on TLS 1.0 while using production URLS (onlinetools.ups.com/tool name) will be rejected.
100% of requests from customers who are on TLS 1.0 or 1.1 while using the development (CIE/test) URLS will be rejected
Any direction will be appreciated.
Thanks a lot!
++++++++++++++++++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ +++++++++
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslSta te.StartRe adFrame(By te[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslSta te.StartRe ceiveBlob( Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslSta te.CheckCo mpletionBe foreNextRe ceive(Prot ocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslSta te.StartSe ndBlob(Byt e[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslSta te.ForceAu thenticati on(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslSta te.Process Authentica tion(LazyA syncResult lazyResult)
at System.Net.TlsStream.CallP rocessAuth entication (Object state)
at System.Threading.Execution Context.ru nTryCode(O bject userData)
at System.Runtime.CompilerSer vices.Runt imeHelpers .ExecuteCo deWithGuar anteedClea nup(TryCod e code, CleanupCode backoutCode, Object userData)
at System.Threading.Execution Context.Ru nInternal( ExecutionC ontext executionContext, ContextCallback callback, Object state)
at System.Threading.Execution Context.Ru n(Executio nContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.Proce ssAuthenti cation(Laz yAsyncResu lt result)
at System.Net.TlsStream.Write (Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Wr ite(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.W riteHeader s(Boolean async)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest. GetRespons e()
at WindowsFormsApplication1.F orm1.PostD ata(String strServiceAddress, String strData)
at WindowsFormsApplication1.F orm1.btnSh ip_Click(O bject sender, EventArgs e)
at WindowsFormsApplication1.F orm1.Form1 _Load(Obje ct sender, EventArgs e)
at System.Windows.Forms.Form. OnLoad(Eve ntArgs e)
at System.Windows.Forms.Form. OnCreateCo ntrol()
at System.Windows.Forms.Contr ol.CreateC ontrol(Boo lean fIgnoreVisible)
at System.Windows.Forms.Contr ol.CreateC ontrol()
at System.Windows.Forms.Contr ol.WmShowW indow(Mess age& m)
at System.Windows.Forms.Contr ol.WndProc (Message& m)
at System.Windows.Forms.Scrol lableContr ol.WndProc (Message& m)
at System.Windows.Forms.Conta inerContro l.WndProc( Message& m)
at System.Windows.Forms.Form. WmShowWind ow(Message & m)
at System.Windows.Forms.Form. WndProc(Me ssage& m)
at System.Windows.Forms.Contr ol.Control NativeWind ow.OnMessa ge(Message & m)
at System.Windows.Forms.Contr ol.Control NativeWind ow.WndProc (Message& m)
at System.Windows.Forms.Nativ eWindow.Ca llback(Int Ptr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8762 (QFE.050727-8700)
CodeBase: file:///C:/Windows/Microso ft.NET/Fra mework/v2. 0.50727/ms corlib.dll
-------------------------- ---------- ----
WindowsFormsApplication1
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///Z:/UPS/NewUPS.exe
-------------------------- ---------- ----
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8015 (FX35W81RTMGDR.050727-8000 )
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System.Wi ndows.Form s/2.0.0.0_ _b77a5c561 934e089/Sy stem.Windo ws.Forms.d ll
-------------------------- ---------- ----
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System/2. 0.0.0__b77 a5c561934e 089/System .dll
-------------------------- ---------- ----
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8019 (FX35W81RTMGDR.050727-8000 )
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System.Dr awing/2.0. 0.0__b03f5 f7f11d50a3 a/System.D rawing.dll
-------------------------- ---------- ----
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000 )
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System.Co nfiguratio n/2.0.0.0_ _b03f5f7f1 1d50a3a/Sy stem.Confi guration.d ll
-------------------------- ---------- ----
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8773 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System.Xm l/2.0.0.0_ _b77a5c561 934e089/Sy stem.Xml.d ll
-------------------------- ---------- ----
System.Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8762 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl y/GAC_32/S ystem.Data /2.0.0.0__ b77a5c5619 34e089/Sys tem.Data.d ll
-------------------------- ---------- ----
gthxnngu
Assembly Version: 1.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System/2. 0.0.0__b77 a5c561934e 089/System .dll
-------------------------- ---------- ----
System.Transactions
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000 )
CodeBase: file:///C:/Windows/assembl y/GAC_32/S ystem.Tran sactions/2 .0.0.0__b7 7a5c561934 e089/Syste m.Transact ions.dll
-------------------------- ---------- ----
System.EnterpriseServices
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000 )
CodeBase: file:///C:/Windows/assembl y/GAC_32/S ystem.Ente rpriseServ ices/2.0.0 .0__b03f5f 7f11d50a3a /System.En terpriseSe rvices.dll
-------------------------- ---------- ----
-c9bultw
Assembly Version: 1.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl y/GAC_MSIL /System/2. 0.0.0__b77 a5c561934e 089/System .dll
-------------------------- ---------- ----
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
UPS has upgraded all their servers and have deprecated support for TLS1.0. Here is a link to more information about this issue: https://www.ups.com/us/en/help-center/technology-support/data-security.page
I need to reference the TLS 1.1 or 1.2 protocols and re-build this application for them. I need some direction on #1 - how to find the correct reference file and #2 how to make the change (which I think I may have figured out how to do)
UPDATE: Here is what UPS sent out this morning...
In order to be in compliance with requirements set forth by the global Payment Card Industry, UPS has upgraded the communication security protocols for all web-based applications.
Please contact your company's IT department or development team to ensure that any security protocols currently used meet the TLS 1.2 requirement. If Java is enabled, it must be version 1.7 or higher to use TLS 1.2.
Effective January 18, 2018, UPS will only accept TLS 1.1 and TLS 1.2 security protocols. It is highly recommended that the most current version, TLS 1.2, be implemented.
100% of requests from customers who are on TLS 1.0 while using legacy URLS (www.ups.com/tool name) will be rejected.
100% of requests from customers who are on TLS 1.0 while using production URLS (onlinetools.ups.com/tool name) will be rejected.
100% of requests from customers who are on TLS 1.0 or 1.1 while using the development (CIE/test) URLS will be rejected
Any direction will be appreciated.
Thanks a lot!
++++++++++++++++++++++++++
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslSta
at System.Net.Security.SslSta
at System.Net.Security.SslSta
at System.Net.Security.SslSta
at System.Net.Security.SslSta
at System.Net.Security.SslSta
at System.Net.TlsStream.CallP
at System.Threading.Execution
at System.Runtime.CompilerSer
at System.Threading.Execution
at System.Threading.Execution
at System.Net.TlsStream.Proce
at System.Net.TlsStream.Write
at System.Net.PooledStream.Wr
at System.Net.ConnectStream.W
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.
at WindowsFormsApplication1.F
at WindowsFormsApplication1.F
at WindowsFormsApplication1.F
at System.Windows.Forms.Form.
at System.Windows.Forms.Form.
at System.Windows.Forms.Contr
at System.Windows.Forms.Contr
at System.Windows.Forms.Contr
at System.Windows.Forms.Contr
at System.Windows.Forms.Scrol
at System.Windows.Forms.Conta
at System.Windows.Forms.Form.
at System.Windows.Forms.Form.
at System.Windows.Forms.Contr
at System.Windows.Forms.Contr
at System.Windows.Forms.Nativ
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8762 (QFE.050727-8700)
CodeBase: file:///C:/Windows/Microso
--------------------------
WindowsFormsApplication1
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///Z:/UPS/NewUPS.exe
--------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8015 (FX35W81RTMGDR.050727-8000
CodeBase: file:///C:/Windows/assembl
--------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl
--------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8019 (FX35W81RTMGDR.050727-8000
CodeBase: file:///C:/Windows/assembl
--------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000
CodeBase: file:///C:/Windows/assembl
--------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8773 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl
--------------------------
System.Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8762 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl
--------------------------
gthxnngu
Assembly Version: 1.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl
--------------------------
System.Transactions
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000
CodeBase: file:///C:/Windows/assembl
--------------------------
System.EnterpriseServices
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8007 (FX35W81RTMGDR.050727-8000
CodeBase: file:///C:/Windows/assembl
--------------------------
-c9bultw
Assembly Version: 1.0.0.0
Win32 Version: 2.0.50727.8770 (QFE.050727-8700)
CodeBase: file:///C:/Windows/assembl
--------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
ASKER
Hi Experts! I had to hire a .net developer to make the appropriate changes to the application and re-package it for me. The protocols were changed and then the program worked again. I can try to get more information from my developer and post his solution here for others to see.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I am following up on your question. Do you still need help?
If you solved the problem on your own, would you please post the solution here in case others have the same problem?
Regards,
Stacy Richard
Customer Relations