Wymagana odpowiedź
Prawda jest taka, że MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
nie ma wpływu .Jest to nieużywana stała. Właśnie to zweryfikowałem, skanując kod źródłowy
.
Pozostaje więc pytanie:czy połączenia MySQLi domyślnie sprawdzają certyfikaty serwerów?
Krótka odpowiedź:Tak , są.
Długa odpowiedź:chociaż certyfikaty nie są dopasowywane do listy powszechnie zaufanych Urzędy certyfikacji , podany urząd certyfikacji (nawet z podpisem własnym) jest nadal weryfikowany podczas nawiązywania połączenia, aby złagodzić Ataki MITM .
Odpowiedź z perspektywy inżynierskiej
Łącząc się z serwerem MySQL, w ogóle nie polecałbym używania połączeń SSL, ponieważ dodają one kilka warstw wad (szyfrowanie, przepustowość, deszyfrowanie, zwiększone zużycie pamięci, zwiększony całkowity czas podróży w obie strony). O wiele lepszym podejściem jest łączenie się w zaufanej sieci lokalnej lub użycie pewnego rodzaju dobrze uwierzytelnionego interfejsu SOAP do pobierania i manipulowania danymi, jeśli serwer z założenia musi znajdować się poza siecią lokalną (w takim przypadku projekt wydaje się po prostu błędny).