sql >> Databasteknik >  >> RDS >> Mysql

php 5.x 7.x, ssl pdo-fel:Peer-certifikat CN=`someName' matchade inte förväntat CN='someIP'

Vi fick det att fungera för våra interna självsignerade certifikat genom att inte använda IP-adresser utan datornamn (+domän) som CN och anslutningsinställningar.

Så sätt 'dbServer1.company.local' som CN för servercertifikatet och använd samma 'dbServer1.company.local' adress som värddelen av DSN för PDO-anslutningen. Om du vill kan du bara använda 'dbServer1' men se till att du använder den på båda ställena.

Detta kommer att få dig igång:

$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 hanterar vår egen DNS så vi löser dbServer1.company.local är inte ett problem men om din webbserver inte kan lösa det du eller du inte kan/kan hantera DNS-posten, hacka sedan in något i stil med följande till dina etc/hosts fil:

10.5.5.20 dbServer1.company.local

eller

10.5.5.20 dbServer1



  1. Mysql:Hur man får varje rad som har mer än ett visst antal decimaler efter pricken

  2. Vad är skillnaderna mellan backtick och enstaka citat? Kan jag använda IF-satsen i en fråga enligt ovan?

  3. Datatypsprioritet i SQL Server

  4. Hur konverterar man effektivt text till nummer i Oracle PL/SQL med icke-standard NLS_NUMERIC_CHARACTERS?