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

php 5.x 7.x, errore ssl pdo:il certificato peer CN=`someName' non corrispondeva al previsto CN='someIP'

L'abbiamo fatto funzionare per i nostri certificati interni autofirmati non utilizzando indirizzi IP ma nomi di computer(+dominio) come CN e impostazioni di connessione.

Quindi, inserisci 'dbServer1.company.local' come CN per il certificato del server e utilizzare lo stesso 'dbServer1.company.local' indirizzo come parte host del DSN per la connessione PDO. Se vuoi, puoi semplicemente usare 'dbServer1' ma assicurati di usarlo in entrambi i posti.

Questo ti farà andare avanti:

$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);

Gestiamo il nostro DNS risolvendo così dbServer1.company.local non è un problema ma se il tuo server web non riesce a risolverlo tu o non gestisci/non puoi gestire la voce DNS, allora hackera qualcosa come il seguente nel tuo etc/hosts file:

10.5.5.20 dbServer1.company.local

o

10.5.5.20 dbServer1