Ce face mysqli_ssl_set
Când serverul de baze de date este pe alt calculator (de exemplu o bază de date în cloud), datele circulă prin rețea și trebuie criptate. mysqli_ssl_set dă certificatele; parametrii pe care nu îi folosești sunt null. De cele mai multe ori este suficient certificatul autorității ($ca_certificate), primit de la furnizor.
După mysqli_ssl_set, te conectezi cu mysqli_real_connect și flag-ul MYSQLI_CLIENT_SSL.
Parametri
| Parametru | Descriere |
|---|---|
$key |
Calea către cheia privată a clientului sau null. |
$certificate |
Calea către certificatul clientului sau null. |
$ca_certificate |
Calea către certificatul autorității (CA). |
$ca_path |
Un director cu certificate CA sau null. |
$cipher_algos |
Algoritmii de criptare permiși sau null. |
Ce returnează
Întotdeauna true. Erorile apar abia la conectare.
Exemple
Exemplul 1: Conectare criptată la o bază din cloud
<?php
$conn = mysqli_init();
mysqli_ssl_set($conn, null, null, "/etc/ssl/certs/ca-baza-de-date.pem", null, null);
mysqli_real_connect($conn, "db.exemplu.ro", "ana", "parola_ta", "magazin", 3306, null, MYSQLI_CLIENT_SSL);
$r = mysqli_fetch_row(mysqli_query($conn, "SHOW STATUS LIKE 'Ssl_cipher'"));
echo "Criptare: $r[1]";
Rezultat posibil (depinde de server)
Criptare: TLS_AES_256_GCM_SHA384
Greșeli frecvente
- Setezi certificatele, dar te conectezi fără
MYSQLI_CLIENT_SSL. Conexiunea poate rămâne necriptată.
Comenzi înrudite
mysqli_init: Creează un obiect mysqli neconectat, pe care îl configurezi cu mysqli_options înainte de mysqli_real_connect.mysqli_real_connect: Conectează la server un obiect creat cu mysqli_init, folosind opțiunile setate înainte.mysqli_options: Setează o opțiune a conexiunii, înainte de conectare: timp maxim, comandă inițială, numere native etc.