PHP-Handshake fehlgeschlagen TLS1.0

8

Ich versuche eine Verbindung über fsockopen zu sendm.cert.legalmail.it auf 465 port, ist SMTPS-Service namens PEC in Italien.

Mit jeder Version von PHP habe ich dieses Snippet ausprobiert:

%Vor%

alles ist in Ordnung mit OpenSSL 1.0.2h , wenn ich auf OpenSSL 1.0.2j aufrüste dieses Snippet scheitert mit diesem Fehler:

%Vor%

Also mit OpenSSL 1.0.2j versuche ich mich über die Kommandozeile zu verbinden:

%Vor%

Es funktioniert perfekt.

Ich versuche SSL auf dem Server mit testssl zu testen, das ist der Dump (entfernt):

%Vor%

Nur TLS 1 ist verfügbar, ich versuche den Handshake zu TLS1 mit dieser uri zu erzwingen: 'tlsv1.0:://sendm.cert.legalmail.it' , aber das Ergebnis ist dasselbe.

Ich bin auf Ubuntu 16.04, getestet mit PHP5.6 und PHP7.1.

Wo ist der Fehler? in openssl? in PHP? im Server-Handshake?

Update wenn ich chiper immer mit ./testssl.sh -E sendm.cert.legalmail.it:465 mit OpenSSL 1.0.2j return:

betrachte %Vor%

Mit der Version OpenSSL 1.0.2h

%Vor%

Und php const OPENSSL_DEFAULT_STREAM_CIPHERS ist das gleiche über alle Versionen, die es enthält:

%Vor%     
Cronos 29.11.2016, 13:22
quelle

3 Antworten

2

Ok, nach einigen Recherchen finde ich warum:

PHP hat eine OPENSSL_DEFAULT_STREAM_CIPHERS , die die Standardabfrage für openssl enthält, mit folgendem Befehl:

%Vor%

Ich bekomme alle Verschlüsselungen, die PHP mit der aktuellen Version von openssl installieren kann.

Zwischen 1.0.2h und 1.0.2j die gleiche Abfrage geben verschiedene Chiffren eine Drop-Unterstützung für diese:

  1. EDH-RSA-DES-CBC3-SHA
  2. DES-CBC3-SHA

Standardmäßig kann PHP die Verbindung nicht korrekt verarbeiten, aber wenn ich die $context mit dieser Chiffre erzwinge, findet die Verbindung statt:

%Vor%     
Cronos 30.11.2016, 09:19
quelle
0

Bearbeitete Antwort vollständig: Sehen Sie sich die Antwort hier an HTTPS und SSL3_GET_SERVER_CERTIFICATE: Zertifikatsprüfung fehlgeschlagen, CA ist OK

Dies ist wahrscheinlich die Ursache für fsock sowie curl. Obwohl seine Frage auf windows / xampp steht, nehme ich an, dass es helfen wird. Ich nehme an, derjenige, der das OS aktualisiert hat, hat die php.ini nicht mit neuen Versionen zusammengefügt.

    
twicejr 29.11.2016 22:37
quelle
0

Für alle anderen, die das gleiche Problem haben: Es scheint, dass der TLS-Server von Legalmail jetzt TLSv1.2 unterstützt, das ist also kein Problem mehr für sie.

    
AleRinaldi 05.05.2017 14:56
quelle

Tags und Links