ASP classique Sortante TLS 1.2
Nous utilisons une API web appel à UPS pour vérifier les informations d'adresse. Ils demandent de TLS 1.2 et le commutateur a cassé notre page.
<%
If ACTION="Verify" and ncSCountry="USA" and ncSState<>"PR" and ncSState<>"AA" and ncSState<>"AP" and ncSState<>"AE" then
Dim sXML
sXML = "<?xml version='1.0'?>"
sXML = sXML & "<AccessRequest xml:lang='en-US'>"
sXML = sXML & "<AccessLicenseNumber>XXXXXX</AccessLicenseNumber>"
sXML = sXML & "<UserId>XXXX</UserId>"
sXML = sXML & "<Password>XXXX</Password>"
sXML = sXML & "</AccessRequest>"
sXML = sXML & "<?xml version='1.0'?>"
sXML = sXML & "<AddressValidationRequest xml:lang='en-US'>"
sXML = sXML & "<Request>"
sXML = sXML & "<TransactionReference>"
sXML = sXML & "<CustomerContext /><XpciVersion>1.0001</XpciVersion>"
sXML = sXML & "</TransactionReference>"
sXML = sXML & "<RequestAction>XAV</RequestAction>"
sXML = sXML & "<RequestOption>1</RequestOption></Request>"
sXML = sXML & "<MaximumListSize>1</MaximumListSize>"
sXML = sXML & "<AddressKeyFormat>"
sXML = sXML & "<ConsigneeName></ConsigneeName>"
sXML = sXML & "<BuildingName></BuildingName>"
sXML = sXML & "<AddressLine>" & ncSAddr1 & "</AddressLine>"
sXML = sXML & "<AddressLine>" & ncSAddr2 & "</AddressLine>"
sXML = sXML & "<AddressLine></AddressLine>"
sXML = sXML & "<PoliticalDivision2>" & ncSCity & "</PoliticalDivision2>"
sXML = sXML & "<PoliticalDivision1>" & ncSState & "</PoliticalDivision1>"
sXML = sXML & "<PostcodePrimaryLow>" & ncSZip & "</PostcodePrimaryLow>"
sXML = sXML & "<CountryCode>US</CountryCode>"
sXML = sXML & "</AddressKeyFormat>"
sXML = sXML & "</AddressValidationRequest>"
'Now pass the request to UPS
Dim xmlhttp4, sResponseXML, myDoc
Set xmlhttp4 = CreateObject("WinHttp.WinHttpRequest.5.1")
'Set xmlhttp4 = CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp4.Open "POST","https://onlinetools.ups.com/ups.app/xml/XAV", false
xmlhttp4.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp4.send(sXML)
If xmlhttp4.Status >= 400 And xmlhttp4.Status <= 599 Then
'Response.Write( "Error Occurred : " & xmlhttp.Status & " - " & xmlhttp.statusText)
sResponseXML = "</empty>"
Else
sResponseXML = xmlhttp4.responseText
End If
Set myDoc=CreateObject("Microsoft.XMLDOM")
myDoc.loadXML(sResponseXML)
myDoc.async = false
Dim addressline, addressline2, city, state, zip, zip4, responsestatus
Dim root, NodeList, x
Set root = myDoc.DocumentElement
If myDoc.hasChildNodes then
Set NodeList = root.SelectNodes("AddressKeyFormat")
For x = 0 To (NodeList.Length - 1)
city = NodeList.Item(x).SelectSingleNode("PoliticalDivision2").Text
state = NodeList.Item(x).SelectSingleNode("PoliticalDivision1").Text
addressline = NodeList.Item(x).SelectSingleNode("AddressLine").Text
addressline2=NodeList.Item(x).SelectSingleNode("AddressLine").NextSibling.nodename
if addressline2="AddressLine" then
addressline2=NodeList.Item(x).SelectSingleNode("AddressLine").NextSibling.Text
Else
addressline2=""
ENd if
zip = NodeList.Item(x).SelectSingleNode("PostcodePrimaryLow").Text
zip4 = NodeList.Item(x).SelectSingleNode("PostcodeExtendedLow").Text
Next
End If
Dim startcust3, endcust3
startcust3=instr(sresponseXML, "<ResponseStatusCode>")
endcust3 = instr(sresponseXML, "</ResponseStatusCode>")
responsestatus=Mid(sResponseXML,startcust3+20,(endcust3-startcust3-20))
ENd if
%>
J'ai déjà essayé de faire ce commutateur, mais j'ai l'impression de manquer quelque chose.
Set xmlhttp4 = CreateObject("WinHttp.WinHttpRequest.5.1")
'Set xmlhttp4 = CreateObject("MSXML2.ServerXMLHTTP")
Essayez de prendre un regard sur les réponses dans cette SORTE d'article: stackoverflow.com/q/29127018/964043
Vous avez essayé de réglage quelle que soit l'adresse HTTP du client que vous utilisez pour utiliser le protocole TLS 1.2? J'ai lu partout qu'il peut exiger .NET 4.5+ stackoverflow.com/questions/4137106/...
Vous avez essayé de réglage quelle que soit l'adresse HTTP du client que vous utilisez pour utiliser le protocole TLS 1.2? J'ai lu partout qu'il peut exiger .NET 4.5+ stackoverflow.com/questions/4137106/...
OriginalL'auteur JeffreyLazo | 2016-01-25
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution avec un simple correctif de registre.
1) Inscrivez-vous TLS 1.2 Protocole:
2) Configurer le protocole TLS 1.2 à la valeur par défaut dans les applications 32 bits:
3) Configurer le protocole TLS 1.2 à la valeur par défaut dans les applications 64 bits:
4) Redémarrer le serveur
Si vous avez besoin de support de TLS 1.1 seulement ensuite:
Si vous avez besoin de support de TLS 1.1 et 1.2
Code de vérification:
À la fin de la réponse, vous devriez voir la version de TLS utilisé par demande
The connection with the server was terminated abnormally
erreurJ'ai eu la question sur 1 de mes serveurs lorsque ce correctif n'a pas aidé. J'ai remarqué que la version de winhttp.dll est plus âgé. Et je l'ai corrigé en installant KB3140245 - il mis à jour de la bibliothèque: support.microsoft.com/en-us/kb/3140245
Je peux confirmer ce qui précède - que j'avais besoin d'appliquer kb3140245 d'abord à partir d'ici, catalog.update.microsoft.com/search.aspx?q=kb3140245, puis appliquer la "solution facile" et d'ajouter " les clés par défaut, ils décrivent ici support.microsoft.com/en-us/help/3140245/... . Pour moi, j'ai ajouté 512 (décimal) comme valeur pour permettre TLS1.1 en tant que par défaut. Winhttp appels utilisé TLS1.1 comme valeur par défaut dans le code.
OriginalL'auteur Anton Palyok