Я пытаюсь подключиться к SQL Server из приложения PHP/Zend Framework, работающего на Ubuntu и в удаленном месте.
Я пытаюсь заставить подключающееся приложение запрашивать шифрование с SQL Server (так как соединение по умолчанию на 1433 находится в явном виде, и я не хочу, чтобы мои учетные данные были обнюханы).
Я настроил SSL-сертификат подстановки на SQL Server, и я создаю соединение PDO со следующим DSN:
dblib:host=server-not-matching-domain.com:1433;dbname=MyDB;Encrypt=true;TrustServerCertificate=false;charset=
Так как имя хоста не соответствует установленному сертификату, я ожидаю, что соединение завершится неудачно - но это не сработает.
Может ли быть, что Encrypt=true;TrustServerCertificate
вообще не рассматриваются?
Не являясь экспертом по этому вопросу, ознакомьтесь с документацией в PHP в отношении PDO_DBLIB DSN
. Как записано, в DSN есть специальный параметр, который называется secure
и в настоящее время не используется.
Я не уверен, что это должен быть правильный способ объявить, что вы хотите иметь безопасное соединение в этом DSN, и это также не совсем полезно, поскольку он помечен как unused
.
Кроме того, сделайте следующее
В php.ini убедитесь, что установлено следующее: mssql.secure_connection = On
Посмотрите, лучше ли подключение через PDO_ODBC
к тому, чего вы хотите достичь. Для подключения через PDO_ODBC
проверьте этот пример
попробуйте установить AES ENCRYPTION CERTIFICATE, это лучшее, что я использовал для защиты учетных данных от обнюхивания
dblib:host=server-not-matching-domain.com:1433;dbname=MyDB;Encrypt=true;TrustServerCertificate=true;charset=utf8
сделать значение по умолчанию true для ssl crtificate в файле php.ini а затем обработать с помощью AES
Это сложнее, чем просто установить флаг.
Отправить этот блог: http://www.madirish.net/214
в my.cnf выполните следующие настройки:
SSL-са =/и т.д. /SSL/MySQL/server.csr
SSL-сертификат =/и т.д. /SSL/MySQL/server.cert
ssl-key =/etc/ssl/mysql/server.key
перезапустить mysql: mysqld restart
Создание клиентских ключей
Отправьте эти ключи вместе с именем пользователя и паролем.
После ответов в stackoverflow подробно объясните:
Подключение к удаленному серверу MySQL с помощью SSL с PHP
Надеюсь, что это поможет.
sql-server
, обозначающий Microsoft SQL Server. Ваш ответ для MySQL, который является другим продуктом СУБД.