Hướng dẫn wordpress azure mysql ssl - wordpress azure mysql ssl

Bỏ qua nội dung chính

Trình duyệt này không còn được hỗ trợ.

Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.

Định cấu hình kết nối SSL trong ứng dụng của bạn để kết nối an toàn với cơ sở dữ liệu Azure cho MySQL

  • Bài báo
  • 29/09/2022
  • 4 phút để đọc

Trong bài viết này

Áp dụng cho: Cơ sở dữ liệu Azure cho MySQL - Máy chủ đơn

Hướng dẫn wordpress azure mysql ssl - wordpress azure mysql ssl
Azure Database for MySQL - Single Server

Quan trọng

Cơ sở dữ liệu Azure cho MySQL - Máy chủ đơn nằm trên đường dẫn hưu. Chúng tôi thực sự khuyên bạn nên nâng cấp lên cơ sở dữ liệu Azure cho MySQL - Máy chủ linh hoạt. Để biết thêm thông tin về việc di chuyển đến cơ sở dữ liệu Azure cho MySQL - Máy chủ linh hoạt, hãy xem những gì đang xảy ra với cơ sở dữ liệu Azure cho máy chủ đơn MySQL?

Cơ sở dữ liệu Azure cho MySQL hỗ trợ kết nối cơ sở dữ liệu Azure của bạn cho máy chủ MySQL với các ứng dụng máy khách bằng cách sử dụng lớp ổ cắm an toàn (SSL). Việc thực thi các kết nối SSL giữa máy chủ cơ sở dữ liệu của bạn và các ứng dụng máy khách của bạn giúp bảo vệ chống lại các cuộc tấn công "người đàn ông ở giữa" bằng cách mã hóa luồng dữ liệu giữa máy chủ và ứng dụng của bạn.

Bước 1: Lấy chứng chỉ SSL

Tải xuống chứng chỉ cần thiết để liên lạc qua SSL với cơ sở dữ liệu Azure của bạn cho máy chủ MySQL từ https://www.digicert.com/cacerts/baltimorecybertrustroot.crt.pem và lưu tệp chứng chỉ vào ổ đĩa cục bộ của bạn (hướng dẫn này sử dụng C: \ SSL Ví dụ). Đối với Microsoft Internet Explorer và Microsoft Edge: Sau khi hoàn tất tải xuống, đổi tên chứng chỉ thành Baltimorecybertrustroot.crt.pem.For Microsoft Internet Explorer and Microsoft Edge: After the download has completed, rename the certificate to BaltimoreCyberTrustRoot.crt.pem.

Xem các liên kết sau đây để nhận chứng chỉ cho máy chủ trong các đám mây có chủ quyền: Chính phủ Azure, Azure Trung Quốc và Azure Đức.

Bước 2: Liên kết SSL

Đối với chuỗi kết nối ngôn ngữ lập trình cụ thể, vui lòng tham khảo mã mẫu bên dưới.

Kết nối với máy chủ bằng cách sử dụng MySQL Workbench qua SSL

Định cấu hình MySQL Workbench để kết nối an toàn qua SSL.

  1. Từ cuộc đối thoại kết nối mới, điều hướng đến tab SSL.SSL tab.

  2. Cập nhật trường SSL sử dụng để "yêu cầu".Use SSL field to "Require".

  3. Trong trường SSL CA:, nhập vị trí tệp của Baltimorecybertrustrust.crt.pem.SSL CA File: field, enter the file location of the BaltimoreCyberTrustRoot.crt.pem.

    Hướng dẫn wordpress azure mysql ssl - wordpress azure mysql ssl

Đối với các kết nối hiện có, bạn có thể liên kết SSL bằng cách nhấp chuột phải vào biểu tượng kết nối và chọn Chỉnh sửa. Sau đó điều hướng đến tab SSL và liên kết tệp CERT.SSL tab and bind the cert file.

Kết nối với máy chủ bằng MySQL CLI qua SSL

Một cách khác để liên kết chứng chỉ SSL là sử dụng giao diện dòng lệnh MySQL bằng cách thực thi các lệnh sau.

mysql.exe -h mydemoserver.mysql.database.azure.com -u Username@mydemoserver -p --ssl-mode=REQUIRED --ssl-ca=c:\ssl\BaltimoreCyberTrustRoot.crt.pem

Ghi chú

Khi sử dụng giao diện dòng lệnh MySQL trên Windows, bạn có thể nhận được lỗi

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
4. Nếu điều này xảy ra, hãy thay thế các tham số
az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
5 bằng
az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
6.

Bước 3: Thực thi các kết nối SSL trong Azure

Sử dụng cổng thông tin Azure

Sử dụng cổng thông tin Azure, hãy truy cập cơ sở dữ liệu Azure của bạn cho máy chủ MySQL, sau đó nhấp vào Bảo mật kết nối. Sử dụng nút chuyển đổi để bật hoặc tắt cài đặt kết nối SSL thực thi, sau đó nhấp vào Lưu. Microsoft khuyên bạn nên luôn bật cài đặt kết nối SSL thực thi để bảo mật nâng cao.Connection security. Use the toggle button to enable or disable the Enforce SSL connection setting, and then click Save. Microsoft recommends to always enable the Enforce SSL connection setting for enhanced security.

Hướng dẫn wordpress azure mysql ssl - wordpress azure mysql ssl

Sử dụng Azure CLI

Bạn có thể bật hoặc vô hiệu hóa tham số thực thi SSL bằng cách sử dụng các giá trị đã bật hoặc bị vô hiệu hóa tương ứng trong Azure CLI.ssl-enforcement parameter by using Enabled or Disabled values respectively in Azure CLI.

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled

Bước 4: Xác minh kết nối SSL

Thực hiện lệnh trạng thái MySQL để xác minh rằng bạn đã kết nối với máy chủ MySQL của mình bằng SSL:status command to verify that you have connected to your MySQL server using SSL:

mysql> status

Xác nhận kết nối được mã hóa bằng cách xem xét đầu ra, sẽ hiển thị: SSL: Mật mã đang sử dụng là AES256-SHASSL: Cipher in use is AES256-SHA

Mã mẫu

Để thiết lập kết nối an toàn với cơ sở dữ liệu Azure cho MySQL qua SSL từ ứng dụng của bạn, hãy tham khảo các mẫu mã sau:

Tham khảo danh sách các trình điều khiển tương thích được hỗ trợ bởi cơ sở dữ liệu Azure cho dịch vụ MySQL.

PHP

$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "/var/www/html/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL);
mysqli_real_connect($conn, 'mydemoserver.mysql.database.azure.com', 'myadmin@mydemoserver', 'yourpassword', 'quickstartdb', 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

PHP (sử dụng PDO)

$options = array(
    PDO::MYSQL_ATTR_SSL_CA => '/var/www/html/BaltimoreCyberTrustRoot.crt.pem'
);
$db = new PDO('mysql:host=mydemoserver.mysql.database.azure.com;port=3306;dbname=databasename', 'username@mydemoserver', 'yourpassword', $options);

Python (Mysqlconnector Python)

try:
    conn = mysql.connector.connect(user='myadmin@mydemoserver',
                                   password='yourpassword',
                                   database='quickstartdb',
                                   host='mydemoserver.mysql.database.azure.com',
                                   ssl_ca='/var/www/html/BaltimoreCyberTrustRoot.crt.pem')
except mysql.connector.Error as err:
    print(err)

Python (PYMYSQL)

conn = pymysql.connect(user='myadmin@mydemoserver',
                       password='yourpassword',
                       database='quickstartdb',
                       host='mydemoserver.mysql.database.azure.com',
                       ssl={'ca': '/var/www/html/BaltimoreCyberTrustRoot.crt.pem'})

Django (PYMYSQL)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'quickstartdb',
        'USER': 'myadmin@mydemoserver',
        'PASSWORD': 'yourpassword',
        'HOST': 'mydemoserver.mysql.database.azure.com',
        'PORT': '3306',
        'OPTIONS': {
            'ssl': {'ca': '/var/www/html/BaltimoreCyberTrustRoot.crt.pem'}
        }
    }
}

Ruby

client = Mysql2::Client.new(
        :host     => 'mydemoserver.mysql.database.azure.com',
        :username => 'myadmin@mydemoserver',
        :password => 'yourpassword',
        :database => 'quickstartdb',
        :sslca => '/var/www/html/BaltimoreCyberTrustRoot.crt.pem'
    )

Golang

rootCertPool := x509.NewCertPool()
pem, _ := ioutil.ReadFile("/var/www/html/BaltimoreCyberTrustRoot.crt.pem")
if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
    log.Fatal("Failed to append PEM.")
}
mysql.RegisterTLSConfig("custom", &tls.Config{RootCAs: rootCertPool})
var connectionString string
connectionString = fmt.Sprintf("%s:%s@tcp(%s:3306)/%s?allowNativePasswords=true&tls=custom","myadmin@mydemoserver" , "yourpassword", "mydemoserver.mysql.database.azure.com", 'quickstartdb')
db, _ := sql.Open("mysql", connectionString)

Java (đầu nối MySQL cho Java)

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
0

Java (đầu nối Mariadb cho Java)

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
1

.NET (MySQLConnector)

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
2

Node.js

az mysql server update --resource-group myresource --name mydemoserver --ssl-enforcement Enabled
3

Bước tiếp theo

  • Để tìm hiểu về chứng chỉ hết hạn và xoay vòng, hãy tham khảo tài liệu xoay vòng chứng chỉ
  • Xem lại các tùy chọn kết nối ứng dụng khác nhau sau thư viện kết nối cho cơ sở dữ liệu Azure cho MySQL

Nhận xét

Gửi và xem phản hồi cho