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

PHP til MySQL SSL-forbindelser

Her PHP (og mysqli_real_connect ) er klienten ikke serveren. Du konfigurerer det med mysqli_ssl_set til klient-certifikatgodkendelse (og brug af servernøglen og certifikatet).

Jeg er ikke sikker på, hvordan du har konfigureret din MySQL-server, men der burde være noget som dette i (MySQL)-serversektionen af ​​konfigurationen:

ssl-key=/mysql-ssl-certs/server-key.pem
ssl-cert=/mysql-ssl-certs/server-cert.pem
ssl-ca=/mysql-ssl-certs/ca-cert.pem

Disse tilhører alligevel ikke klientsiden (det gør kun CA-certifikatet, men bestemt ikke serverens private nøgle).

Når du har gjort dette, kan du prøve at se, om serveren er konfigureret korrekt ved hjælp af kommandolinjeklienten:

mysql --ssl-verify-server-cert --ssl-ca=/mysql-ssl-certs/ca-cert.pem --ssl -h hostname ...

eller måske dette (selvom verify server cert virkelig burde være aktiveret for at SSL/TLS er nyttigt)

mysql --ssl-ca=/mysql-ssl-certs/ca-cert.pem --ssl -h hostname ...

Dette bør i det mindste fungere på kommandolinjen.

Så fra PHP får du to muligheder:

  • brug mysqli_ssl_set som du har gjort, men efterlader $key og $cert null, medmindre du vil bruge et klientcertifikat, som virkelig burde være forskelligt fra dit servercertifikat. (Jeg kan ikke huske, om det virker.)
  • muligvis nemmere, udelad mysqli_ssl_set helt og konfigurere dette i din globale MySQL-klientkonfigurationsfil (hvor PHP skal kunne hente det, muligvis /etc/mysql/my.cnf , men dette kan variere afhængigt af din distribution):

    [client]
    ssl-ca=/mysql-ssl-certs/ca-cert.pem
    

(Dette svarer til serverkonfigurationen, men på klientsiden/i klientsektionen.)

For autorisationsdelen (GRANT ):

  • REQUIRE SSL kræver kun brug af SSL/TLS
  • REQUIRE ISSUER , REQUIRE SUBJECT og REQUIRE X509 kræve, at klienten præsenterer et klientcertifikat for at sammenligne med de påkrævede værdier (det er tilfældet, hvor du skal bruge ssl-key og ssl-cert på klientsiden (config eller i mysqli_ssl_set ).


  1. Største værdi af flere kolonner med kolonnenavn?

  2. Datareplikering i IRI Workbench

  3. SQL OR Operator for begyndere

  4. Beverly Hills 90210 og ZIP+4:Håndtering af adresser i datamodeller