Wir haben einen Server mit MySQL auf Port 3306. Wir haben Sertifikationen und Schlüssel und wir versuchen es Stellen Sie eine Verbindung zu diesem Server her. Aber wir sehen ein solches Problem:php 5.x 7.x, ssl pdo Fehler: Peer-Zertifikat CN = `someName 'nicht erwartet CN =' someIP '
Peer certificate CN='SomeName' did not match expected CN='someIP'
ich viele Artikel gelesen haben und können nicht Antwort für PDO PHP finden. Das Interessanteste ist, dass der SQLYog mit allen Einstellungen verbunden werden kann.
Ich habe gelesen, dass ich verify_peer_names deaktiviert werden kann (ich hoffe, ich verstehe was peer_names ... ist), aber nur wenn wir openssl_ {functions} oder mysqli, nicht PDO verwenden. Beide Optionen sind für mich nicht geeignet. Ich brauche PDO.
Was ich zu tun versucht: zwischen den Versionen von PHP
- Schalter. Es hat mir geholfen, aber ich brauche 5,6 oder mehr. Für PHP 7.0 der gleiche Fehler.
- finden Sie eine andere Versionen von OpenSSL und PDO; schnell habe ich verstanden, dass es eine schlechte Idee ist :)
- finde einige Einstellungen in php.ini, aber keine Einstellungen für mein Problem, nur für die Erstellung von ssl.
Mein Code für den Anschluss:
$dbInfo = array
(
'dsn' => 'mysql:host=123.45.67.890;dbname=someDB;port=3306',
'user' => 'user',
'pass' => 'userpassword'
);
$con = new PDO
(
$dbInfo['dsn'], $dbInfo['user'], $dbInfo['pass'],
array(
PDO::MYSQL_ATTR_SSL_CIPHER => 'AES256-SHA',
PDO::MYSQL_ATTR_SSL_CA => 'SSLCert/ca-cert.pem',
PDO::MYSQL_ATTR_SSL_KEY => 'SSLCert/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => 'SSLCert/client-cert.pem',
)
);
echo 'Connection OK!';
Es ist ein bekanntes Problem, siehe: [PHP Fehler # 71003] (https://bugs.php.net/bug.php?id=71003) –
Danke Mann! Aber ich verstehe immer noch nicht, was ich mit SSL-Verbindung zu tun habe. Ich lese, dass sie es in irgendeinem Patch reparieren, sie grasen openssl lib, aber zuerst bin ich nicht gut darin, in einer lib zu graben, zweitens - es ist keine gute Idee, lib selbst zu reparieren. Vielleicht bin ich carelles und habe die Antwort nicht gefunden ... Wenn du gearbeitet hast und dieses Problem für dich selbst gelöst hast - kannst du mir irgendwie aufzeigen, was zu tun ist? –