Я в основном разрабатываю приложения PHP, используя MySQL в качестве базы данных. Как правило, сервер, на котором выполняется приложение, находится в том же ящике, что и сервер MySQL, хотя и не всегда.
Я читал в документации PHP о поддержке SSL http://php.net/manual/en/ref.pdo-mysql.php и у меня остались эти вопросы:
1) Не в большинстве случаев - вы можете (должны) настроить MySQL только на локальный, поэтому, если кто-то не имеет доступа администратора к ящику или не может работать как пользователь MySQL, SSL не будет иметь значения.
2) Абсолютно, это предотвращает человека посередине (кто-то подделывает ваш веб-сервер, чтобы, например, они могли запрашивать базу данных) и обнюхивать данные.
3) То же, что и с большинством SSL - используйте надежное шифрование (без SHA1), охраняйте свои ключи, регулярно меняйте их и т. Д.
4) В некотором роде, они не обязательно должны быть одинаковыми ключами или чем-то еще, но если у вашей организации есть ЦС, вы можете упростить вещи, но заставить их утверждать («подписывать») ваши сертификаты, что может упростить работу с точки управления. зрения.
Если приложение и сервер базы данных находятся в одной среде (localhost), необходимо ли подключаться к MySQL с помощью SSL?
Нет. В любом случае лучше всего использовать сокет MySQL, который не поддерживает SSL / TLS.
Имеет ли это преимущество, когда вы обращаетесь к информации между двумя серверами (сервер приложений и сервер базы данных)?
Да. SSL / TLS обеспечивает безопасность транспорта, гарантируя, что ни учетные данные, ни транзакции не передаются в виде открытого текста. Традиционно считается, что в доверенной сети риск перехвата злонамеренной третьей стороной чрезвычайно мал, а преимущества защиты такого трафика незначительны по сравнению с накладными расходами. Но это не так, накладные расходы не такие уж большие и лучше, чем сожалеть ...