sql >> Database teknologi >  >> RDS >> Mysql

php 5.x 7.x, ssl pdo-fejl:Peer-certifikat CN=`someName' matchede ikke forventet CN='someIP'

Vi fik det til at fungere for vores interne selvsignerede certifikater ved ikke at bruge IP-adresser, men maskinnavne (+domæne) som CN- og forbindelsesindstillinger.

Så indsæt 'dbServer1.company.local' som CN for servercertifikatet og brug den samme 'dbServer1.company.local' adresse som værtsdelen af ​​DSN for PDO-forbindelsen. Hvis du vil, kan du bare bruge 'dbServer1' men sørg for at bruge det begge steder.

Dette får dig i gang:

$pdo_options = array(
    PDO::MYSQL_ATTR_SSL_KEY => 'path/to/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT => 'path/to/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA => 'path/to/ca.pem'
);

PDO::__construct('mysql:host=dbServer1.company.local;dbname=someDB','someUser', 'somePass', $pdo_options);

Vi administrerer vores egen DNS, så vi løser dbServer1.company.local er ikke et problem, men hvis din webserver ikke kan løse det, eller du ikke/kan ikke administrere DNS-posten, så hack noget som det følgende til dine etc/hosts fil:

10.5.5.20 dbServer1.company.local

eller

10.5.5.20 dbServer1



  1. PHP PDO:tegnsæt, sæt navne?

  2. opdateringskommando afvises for brugeren

  3. Sådan installeres MySQL gem på Mac OS X

  4. Forespørgselstimeout i pg-promise