Hoofdmenu

Opencart v 2.3.0.1 TSl error

Gestart door Mouka, 06 november, 2017, 12:23:08

Vorige topic - Volgende topic

Mouka

Ik loop tegen het volgende probleem aan bij de Acumulus module 4.90 voor Opencart 2.3.0.2

Als ik de module installeer dan krijg ik de volgende foutmelding in Opencart:
Notice: Use of undefined constant CURL_SSLVERSION_TLSv1_2 - assumed 'CURL_SSLVERSION_TLSv1_2' in ../system/library/Siel/Acumulus/Web/Communicator.php on line 217
Als ik dan de code CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2 inactief maak verdwijnt de foutmelding maar er wordt geen factuur aangemaakt.

Van mijn hoster krijg ik het volgende commentaar op bovenstaande foutmelding:
De SSL versie die u mee stuurt is dan onjuist of niet toegestaan op de server.

In de e-mail krijg ik dan de volgende melding:
Fout 400: Error - Bad Request - Missing mandatory contract section in the XML. (CE0001NCN)

Wat kan ik doen om de module werkend te krijgen?


erwin-burorader

#1
Uw hoster heeft gelijk. Zij vergeten echter te vermelden dat dit komt omdat zij een antieke versie van curl ter beschikking stellen waarin de momenteel enig veilig geachte versie van SSL/TLS nog niet is opgenomen. Vraag uw hoster dus om CURL en openssl te upgraden naar een recente versie.

Ter verduidelijking: de webservice van Acumulus accepteert alleen nog maar TLS1.2 verbindingen, zolang de server waarop uw webshop draait dat niet aankan, kunt u geen verbinding maken met Acumulus om facturen automatisch te versturen. Het teruggaan naar een oudere versie van de extensie zal dus ook niet helpen.

Mouka


Mouka

Terugkomend op de TSL 1.2, dat is bij de meeste hosters echter geen standaard.
Bij mijn hoofdhoster Versio staat de implementatie nog niet op de lijst, ook niet bij bv. Transip.

Nu de vraag, lopen jullie niet teveel vooruit als de hosters TSL 1.2 nog niet geïmplenteerd hebben?
Ik maak al jaren gebruik van Acumulus maar een belangrijk onderdeel met de Opencart koppeling is voor mij onbruikbaar geworden.  :(

Hoe nu verder? :|


Guido

TLS1.2 is van 2008 waarna in 2011 er nog een kleine verbetering in doorgevoerd is. Het is een kleine moeite voor een webhoster om dit probleem op het platform te verhelpen. Als er nog geen ondersteuning voor TLSv1.2 is dan vraag ik me af in hoeverre de overige software op het hostingplatform bij gehouden wordt..

Zou je het nogmaals aan de webhost willen voorleggen of ze CURL willen updaten?

Mouka

Ik had ze daar al om gevraagd, ze hebben dat nog niet op de agenda staan; het gaat hierbij uiteraard om de CURL TSL 1.2.

Ik denk ook dat ze dat zouden moeten uitrollen, het kan ook met de DirectAdmin op UNIX servers maar toch....nu is het er nog niet.
De optie is er wel als je een vps server zelf gaat inrichten maar daar ga ik niet aan beginnen.

Guido

Heb je enig idee welke versie van cURL je nu tot je beschikking hebt op het platform?

Mouka

#7
Ga ik navragen en als ik dat weet post ik het ;-)

Inmiddels ook een testje gedaan met volgend resultaat, weet niet of je daar iets wijzer van wordt...

array(9) {
  ["version_number"]=>
  int(466176)
  ["age"]=>
  int(3)
  ["features"]=>
  int(558781)
  ["ssl_version_number"]=>
  int(0)
  ["version"]=>
  string(6) "7.29.0"
  ["host"]=>
  string(23) "x86_64-redhat-linux-gnu"
  ["ssl_version"]=>
  string(18) "NSS/3.21 Basic ECC"
  ["libz_version"]=>
  string(5) "1.2.7"
  ["protocols"]=>
  array(20) {
   
  • =>
        string(4) "dict"
        [1]=>
        string(4) "file"
        [2]=>
        string(3) "ftp"
        [3]=>
        string(4) "ftps"
        [4]=>
        string(6) "gopher"
        [5]=>
        string(4) "http"
        [6]=>
        string(5) "https"
        [7]=>
        string(4) "imap"
        [8]=>
        string(5) "imaps"
        [9]=>
        string(4) "ldap"
        [10]=>
        string(5) "ldaps"
        [11]=>
        string(4) "pop3"
        [12]=>
        string(5) "pop3s"
        [13]=>
        string(4) "rtsp"
        [14]=>
        string(3) "scp"
        [15]=>
        string(4) "sftp"
        [16]=>
        string(4) "smtp"
        [17]=>
        string(5) "smtps"
        [18]=>
        string(6) "telnet"
        [19]=>
        string(4) "tftp"
      }
    }

Guido

Als je een php-bestand (bijvoorbeeld curl.php) met onderstaande regel upload naar je webhost en het aanroept met je browser dan krijg je het versienummer ook te zien.

<?php $v=curl_version(); echo $v["version"]; ?>

Mouka


Guido

LEK-ker dan: https://curl.haxx.se/docs/vuln-7.29.0.html ...

misschien zijn er redhat-patches toegepast op de geïnstalleerde versie maar modern is het zeker niet.

Mouka

Ja dat is zeker een oude boel, maar blijkbaar gangbaar op shared servers...

Is er een optie dat ik de module kan gaan gebruiken?

Guido

Citaat van: Mouka op 06 november, 2017, 12:23:08
Als ik de module installeer dan krijg ik de volgende foutmelding in Opencart:
Notice: Use of undefined constant CURL_SSLVERSION_TLSv1_2 - assumed 'CURL_SSLVERSION_TLSv1_2' in ../system/library/Siel/Acumulus/Web/Communicator.php on line 217
Als ik dan de code CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2 inactief maak verdwijnt de foutmelding maar er wordt geen factuur aangemaakt.

Je kunt deze regel niet zomaar weghalen. Dan valt CURL wellicht terug op de verkeerde versie. Wat als je de regel niet weghaalt maar kwootjes om 'CURL_SSLVERSION_TLSv1_2' zet? Dan zou de Notice moeten verdwijnen.

Mouka

Blijft dezelfde fout komen:

Bij het verzenden van een factuur naar Acumulus zijn er fouten opgetreden. De factuur is niet aangemaakt in Acumulus. Pas de factuur aan in uw webshop alvorens deze opnieuw te versturen.
(Webshop)bestelling:
796
(Acumulus) factuur:
niet aangemaakt in Acumulus
Verzendstatus:
2 Mislukt, fouten gevonden
Meldingen:
°   Fout 400: Error - Bad Request - Missing mandatory contract section in the XML. (CE0001NCN)

Meer informatie over eventueel vermeldde foutcodes kunt u vinden op Acumulus - API documentation: exit and warning codes.
Informatie voor Acumulus support:
De informatie hieronder wordt alleen getoond om eventuele support te vergemakkelijken, u kunt deze informatie negeren.
°   Verzonden bericht:
°   <?xml version="1.0" encoding="utf-8" standalone="yes"?>
°   <myxml></myxml>
°   Ontvangen bericht:
°   <?xml version="1.0" encoding="UTF-8"?><response><errors><error><code>400</code><codetag>CE0001NCN</codetag><message>Error - Bad Request - Missing mandatory contract section in the XML.</message></error><count_errors>1</count_errors></errors><status>1</status></response>

erwin-burorader

De melding betreffende de undefined constant geeft aan dat jou php versie ook redelijk oud is: http://php.net/ChangeLog-5.php#5.6.3 of http://php.net/ChangeLog-5.php#5.5.19. IK zou echt aandringen op een iets actiever update beleid van je hoster. Jouw klantdata ligt met dat soort versies zo maar op straat.

NB: je kunt die constante vervangen door het getal 6. Als de onderliggende curl lib dan wel enigszins up to date is, kan dat werken.

De melding die je als laatste geeft kan ik niet verklaren. Het suggereert dat je toch wel verbinding krijgt met Acumulus maar dat er een leeg bericht is verstuurd.

Wat is de versie-info die je op het instellingenscherm terug kunt vinden? (Extensions - Extensions - Modules - Acumulus - Instellingen)

Mouka

#15
Ik heb de php versie naar 7.1 kunnen verhogen ;-) zie hieronder de versie informatie voor de module en andere software.

Informatie over uw webshop en deze module
Application: Acumulus module 4.9.0; Library: 4.9.0; Shop: OpenCart23 2.3.0.2;
Environment: PHP 7.1.10; Curl: 7.54.0 (ssl: OpenSSL/1.0.2k; zlib: 1.2.7); JSON: 1.5.0; OS: Linux vserver10.axc.nl 3.10.0-714.10.2.lve1.4.65.el7.x86_64 #1 SMP Tue Sep 26 06:53:51 EDT 2017 x86_64 Server: example.com.

Eerdere foutmeldingen zijn weg maar geen orders doorgezet, zie nu volgende error:
Notice: Array to string conversion in catalog/controller/event/compatability.php

Ik kan nu wel een batch verzending uitvoeren, dat is al wat ;-)

erwin-burorader

Is dit bij batchverzending of bij automatisch versturen of bij beide?  Deze foutmelding/waarschuwing is normaal gesproken iets uitgebreider: een exacte locatie van de filename (staat er misschien system\ocmod voor?) en een regelnummer. Kun je die ook geven?

Mouka

#17
Module gedeïnstalleerd en weer geïnstalleerd, krijg nu geen foutmeldingen meer.

Bij batchverzending -geforceerd- lukt het een order door te zetten.

Via bestelling-wijzigen-geschiedenis en bij een nieuwe bestelling werkt het niet.

screenshot vd. foutmelding bij order->geschiedenis doorzetten meegestuurd


erwin-burorader

Het automatisch verzenden werkt weer met versie 4.9.5, te downloaden via dit forum.

Mouka

Super bedankt Edwin, het werkt nu.

Dank voor de snelle update  8)