MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT
Nếu iTop được lưu trữ trên một máy chủ khác với máy chủ MySQL và cơ sở hạ tầng dùng chung được sử dụng, thì bạn có thể muốn sử dụng mã hóa giữa ứng dụng và cơ sở dữ liệu Một cách để làm điều đó là sử dụng kết nối an toàn MySQL. Xem tài liệu chính thức. mysql. mysql 5. 6 Hướng dẫn tham khảo. 6. 4 Sử dụng kết nối được mã hóa Kể từ phiên bản 2. 5, iTop cho phép sử dụng các tham số đó
Nếu 'db_tls. ca' không trống và hợp lệ thì việc xác minh chứng chỉ máy chủ sẽ được thực hiện trên mỗi kết nối. Theo mặc định, iTop sẽ kết nối với MySQL bằng cờ MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (xem http. //php. mạng/thủ công/en/mysqli. kết nối thực. php), nhưng nếu CA được chỉ định thì nó sẽ kết nối với cờ MYSQLI_CLIENT_SSL Trước khi sử dụng kết nối như vậy trong iTop, bạn cần kiểm tra cấu hình của mình. Trong phpinfo (thiết lập cuộc gọi/phpinfo. php) mà bạn nên có, trong phần “mysqlnd” như sau Combodo cũng hầu như không khuyên bạn nên kiểm tra liên kết bằng cách sử dụng tập lệnh sau mysql-tls-kiểm tra. phpini_set ('error_reporting', E_ALL); ini_set ('display_errors', '1'); error_reporting (E_ALL|E_STRICT); assert_options(ASSERT_ACTIVE, true); assert_options(ASSERT_WARNING, true); assert_options(ASSERT_BAIL, true); $sMySqlHost = 'mysqlserver'; //TODO $iMySqlPort = 3306; $sMySqlUser = 'user'; //TODO $sMySqlPassword = 'password'; //TODO $iMySqlFlag = MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT; $sTlsKey = '/var/mysql/client-key.pem'; //TODO fix right value, null if not used $sTlsCert = '/var/mysql/client-cert.pem'; //TODO fix right value, null if not used $sTlsCa = '/var/mysql/ca.pem'; //TODO fix right value, null if not used assert(is_readable($sTlsKey), 'Can\'t open SSL Key file'); assert(is_readable($sTlsCert), 'Can\'t open SSL Cert file'); assert(is_readable($sTlsCa), 'Can\'t open SSL CA file'); echo "Trying to connect using :\n host=$sMySqlHost, user=$sMySqlUser, port=$iMySqlPort\n"; echo "TLS options :\n key=$sTlsKey\n cert=$sTlsCert\n ca=$sTlsCa\n"; $oMysqli = new mysqli(); $oMysqli->init(); $oMysqli->ssl_set($sTlsKey, $sTlsCert, $sTlsCa, NULL, NULL); $oMysqli->real_connect($sMySqlHost, $sMySqlUser, $sMySqlPassword, null, $iMySqlPort, NULL, $iMySqlFlag); if ($oMysqli->connect_errno) { die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n"); } else { if (!IsOpenedDbConnectionUsingTls($oMysqli)) { $oMysqli->close(); die ('The connection can be opened but is not TLS encrypted !'); } echo "Successfully connected using TLS !\n"; $sTlsCipherValue = GetMySqlVarValue($oMysqli, 'ssl_cipher'); $sTlsVersionValue = GetMySqlVarValue($oMysqli, 'ssl_version'); echo "TLS cipher=$sTlsCipherValue\n"; echo "TLS version=$sTlsVersionValue\n"; $oMysqli->close(); } /** * Khi thành công, bạn sẽ thấy Trying to connect using : host=192.168.10.70, user=sha256user, port=3306 TLS options : key=/var/www/html/client-key.pem cert=/var/www/html/client-cert.pem ca=/var/www/html/ca.pem Successfully connected using TLS ! TLS cipher=DHE-RSA-AES256-SHA Xử lý sự cốNếu bạn nhận được cảnh báo hoặc lỗi liên quan đến --ssl hoặc --ssl-mode Như là iTop >= 2. 6. 2 nên xử lý những cảnh báo này với MySQL >= 5. 7. 0, nếu bạn vẫn gặp phải những cảnh báo này hoặc gặp phải chúng với phiên bản thấp hơn hoặc nhà cung cấp MySQL khác, chúng tôi có thể xác minh bằng SELECT Version() và SELECT @@version Rằng bạn nhận được phiên bản của mình và nhà cung cấp MySQL ở định dạng tương tự như 10.3.15-MariaDB-log Những thông tin này sẽ được iTop xử lý để chọn các tham số chính xác theo nhà cung cấp/phiên bản MySQL của bạn và do đó cần phải được điền vào Nếu bạn gặp lỗi sau khi sử dụng lệnh mariadb mysqldump, hãy kiểm tra phiên bản mysqldump bạn đang sử dụng |