2017-06-02 4 views
0

Spätestens am 30. Juni muss jeder, der Paypals Payflow Pro-Integration verwendet, TLS 1.2 verwenden.Payflow Pro und TLS 1.2 über COM DLL

Unsere aktuelle Implementierung sind die in VB6 integrierten COM-DLLs des Fensters. Um das zu umgehen diese Einschränkung sind wir sie in C# .NET .NET Framework 4.6.1

ich wieder aufgebaut, sie wieder aufzubauen und begann Tests und bemerkte, dass mein DLL nicht TLS Kommunikation über 1,2

Unser Problem ist, dass 4.6.1 unterstützt TLS 1.2 standardmäßig ... außer wenn wir diese als COM DLLs verwenden. Sie scheinen Servereinstellungen zu übernehmen, damit ich sehen kann, dass der Server, auf dem sie sich befinden, SSL und TLS verwendet.

Per anderen SO Empfehlungen Ich bin in der Lage zu setzen ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

Ja, das funktioniert, außer ...

Das ist also eine statische Einstellung und ändert im Wesentlichen diesen Wert auf "Der Server" als Ganzes.

Wir müssen diese DLLs auf allen unseren Webservern veröffentlichen, und diese Server müssen zu diesem Zeitpunkt andere Protokolle unterstützen, obwohl Paypal Kommunikation nur über TLS 1.2 benötigt.

Ich bin nur nicht sicher, was genau das mit den Servereinstellungen tut. Erzwingt TLS 1.2 für Paypal dann zu verhindern, dass anderer Verkehr hereinkommt?

Ich habe zu dieser Zeit keine Option für diese Implementierung. Sie müssen DLLs sein, um die alten zu ersetzen, da wir Hunderte von Anwendungen haben, die auf diese DLLs verweisen, und wir können keine modernere Lösung finden, weil das zu viel Zeit und dann das Berühren des Codes jeder Anwendung erfordern würde (altes Vermächtnis) System).

Ich kann nicht die aktuelle Einstellung greifen, ändern Sie es für den Paypal Anruf, dann legen Sie es zurück, weil mit so vielen Aufrufen zu diesem DLLs, könnte es bereits in einem Zustand 1.2 von einem anderen Anruf sein.

Ist dies die einzige Möglichkeit, TLS 1.2 Kommunikation mit Paypal Payflow Pro zu erzwingen und wenn ja, wird diese Einstellung Kommunikation für alle anderen weniger restriktiven Web-Verkehr stören? Ich habe einfach keinen guten Überblick darüber, was diese Einstellung bewirkt und was sie beeinflusst.

+0

Neugierig - haben Sie jemals eine Lösung für dieses Problem gefunden? Möglicherweise stoßen wir auf ein ähnliches Problem. –

+0

@MikeSmith unser IT-Team war nicht allzu hilfreich mit diesem, also musste ich mit Code umgehen. Ich habe eine Antwort zu diesem Thread für das, was ich getan habe, hinzugefügt. –

Antwort

0

Unser IT-Team war nicht sehr hilfreich mit diesem, also musste ich mit Code umgehen. Ich bin ziemlich sicher, dass es eine Möglichkeit gibt, den Server dazu zu bringen, dies zu tun, aber da ich keine interne Hilfe bekommen konnte, habe ich folgendes gemacht:

Was ich getan habe, war sicher, dass TLS 1.2 war aktiviert, wenn eine Instanz meiner Klasse in der DLL wie folgt instanziiert wird:

public myClassConstructor() 
{ 

    // instantiate class process... 

    // Call the process to be sure TLS 1.2 is enabled 
    HelperMethods.SetSecurityProtocol(); 

} 

public static void SetSecurityProtocol() 
{ 
// Verify if TLS 1.2 is enabled on the server. If not, add it to the current collection of available protocols 

    if (!System.Net.ServicePointManager.SecurityProtocol.HasFlag(System.Net.SecurityProtocolType.Tls12)) 
    { 
     System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12; 
    } 
} 
+0

Hinweis: Diese Idee finden Sie hier: http://StackOverflow.com/questions/28286086/default-securityprotocol-in-net-4-5 –