Как работает поддержка SSL в PHP PDO (MySQL)? - PullRequest
4 голосов
/ 25 января 2012

Я знаком с согласованием открытого / закрытого ключа, реализованным в HTTPS, поэтому меня смущают следующие опции драйвера, которые , очевидно, доступны (хотя официально не документированы) для драйвера MySQL PDO:

PDO::MYSQL_ATTR_SSL_KEY
PDO::MYSQL_ATTR_SSL_CERT
PDO::MYSQL_ATTR_SSL_CA

Ссылка указывает на то, что они указывают на файлы, хранящиеся локально - но почему на клиенте должна храниться копия чего-либо, кроме сертификата CA. Кто-нибудь успешно сделал зашифрованное соединение, используя этот метод?

1 Ответ

2 голосов
/ 26 января 2012

Это относится к клиентским сертификатам, которые клиент должен иметь для того, чтобы иметь возможность подключиться к серверу, т. Е. Что клиент должен подтвердить свою личность (да, SSL может работать и наоборот).Начните с прочтения основного раздела Использование SSL для безопасных соединений , затем просмотрите предложения REQUIRE в синтаксисе GRANT :

  • REQUIRE X509 означает, что клиент должен иметь действительный сертификат, но точный сертификат, эмитент и субъект не имеют значения.Единственное требование состоит в том, что должна быть возможность проверки его подписи с одним из сертификатов CA.

  • REQUIRE ISSUER 'issuer' накладывает ограничение на попытки подключения, что клиент должен представить действительный сертификат X509выдан CA "эмитент".Если клиент представляет сертификат, который является действительным, но имеет другого эмитента, сервер отклоняет соединение.Использование сертификатов X509 всегда подразумевает шифрование, поэтому в этом случае опция SSL не требуется.

  • ...

...