MySQL sử dụngSSL

Kể từ ngày 19 tháng 9 năm 2019, Amazon RDS đã xuất bản các chứng chỉ Tổ chức phát hành chứng chỉ [CA] mới để kết nối với cụm Aurora DB của bạn bằng Lớp cổng bảo mật hoặc Bảo mật lớp vận chuyển [SSL/TLS]. Sau đây, bạn có thể tìm thấy thông tin về việc cập nhật các ứng dụng của mình để sử dụng các chứng chỉ mới

Chủ đề này có thể giúp bạn xác định xem có bất kỳ ứng dụng khách nào sử dụng SSL/TLS để kết nối với các cụm DB của bạn không. Nếu có, bạn có thể kiểm tra thêm xem các ứng dụng đó có yêu cầu xác minh chứng chỉ để kết nối hay không

Một số ứng dụng được định cấu hình để chỉ kết nối với các cụm Aurora MySQL DB nếu chúng có thể xác minh thành công chứng chỉ trên máy chủ

Đối với các ứng dụng như vậy, bạn phải cập nhật các cửa hàng ủy thác ứng dụng khách của mình để bao gồm các chứng chỉ CA mới

Sau khi bạn cập nhật chứng chỉ CA của mình trong kho lưu trữ tin cậy của ứng dụng khách, bạn có thể xoay vòng chứng chỉ trên các cụm DB của mình. Chúng tôi thực sự khuyên bạn nên thử nghiệm các quy trình này trong môi trường phát triển hoặc dàn dựng trước khi triển khai chúng trong môi trường sản xuất của bạn

Để biết thêm thông tin về xoay vòng chứng chỉ, hãy xem Xoay vòng chứng chỉ SSL/TLS của bạn. Để biết thêm thông tin về cách tải xuống chứng chỉ, hãy xem Sử dụng SSL/TLS để mã hóa kết nối đến cụm DB. Để biết thông tin về cách sử dụng SSL/TLS với các cụm Aurora MySQL DB, hãy xem Sử dụng SSL/TLS với các cụm Aurora MySQL DB

Nếu bạn đang sử dụng Aurora MySQL phiên bản 2 [tương thích với MySQL 5. 7] và Lược đồ hiệu suất được bật, hãy chạy truy vấn sau để kiểm tra xem các kết nối có đang sử dụng SSL/TLS không. Để biết thông tin về cách kích hoạt Lược đồ Hiệu suất, hãy xem Khởi động nhanh Lược đồ Hiệu suất trong tài liệu MySQL

mysql> SELECT id, user, host, connection_type
       FROM performance_schema.threads pst
       INNER JOIN information_schema.processlist isp
       ON pst.processlist_id = isp.id;

Trong kết quả mẫu này, bạn có thể thấy cả phiên của chính mình [_______15] và ứng dụng đăng nhập bằng tên

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
6 đang sử dụng SSL

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]

Nếu bạn đang sử dụng Aurora MySQL phiên bản 1 [tương thích với MySQL 5. 6], thì bạn không thể xác định từ phía máy chủ xem các ứng dụng đang kết nối có hay không có SSL. Đối với những phiên bản đó, bạn có thể xác định xem SSL có được sử dụng hay không bằng cách kiểm tra phương thức kết nối của ứng dụng. Bạn có thể tìm thêm thông tin về kiểm tra cấu hình kết nối máy khách trong phần sau

Bạn có thể kiểm tra xem máy khách JDBC và máy khách MySQL có yêu cầu xác minh chứng chỉ để kết nối hay không

Ví dụ sau với MySQL Connector/J 8. 0 chỉ ra một cách để kiểm tra các thuộc tính kết nối JDBC của ứng dụng để xác định xem các kết nối thành công có yêu cầu chứng chỉ hợp lệ hay không. Để biết thêm thông tin về tất cả các tùy chọn kết nối JDBC cho MySQL, hãy xem Thuộc tính cấu hình trong tài liệu MySQL

Khi sử dụng Trình kết nối MySQL/J 8. 0, kết nối SSL yêu cầu xác minh đối với chứng chỉ CA của máy chủ nếu thuộc tính kết nối của bạn có

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
0 được đặt thành
+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
1 hoặc
+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
2, như trong ví dụ sau

Properties properties = new Properties[];
properties.setProperty["sslMode", "VERIFY_IDENTITY"];
properties.put["user", DB_USER];
properties.put["password", DB_PASSWORD];

Nếu bạn sử dụng MySQL Java Connector v5. 1. 38 trở lên hoặc MySQL Java Connector v8. 0. 9 trở lên để kết nối với cơ sở dữ liệu của bạn, ngay cả khi bạn chưa định cấu hình rõ ràng các ứng dụng của mình để sử dụng SSL/TLS khi kết nối với cơ sở dữ liệu của mình, các trình điều khiển máy khách này mặc định sử dụng SSL/TLS. Ngoài ra, khi sử dụng SSL/TLS, họ thực hiện xác minh một phần chứng chỉ và không kết nối được nếu chứng chỉ máy chủ cơ sở dữ liệu hết hạn

Các ví dụ sau với Máy khách MySQL hiển thị hai cách để kiểm tra kết nối MySQL của tập lệnh để xác định xem các kết nối thành công có yêu cầu chứng chỉ hợp lệ hay không. Để biết thêm thông tin về tất cả các tùy chọn kết nối với Máy khách MySQL, hãy xem Cấu hình phía máy khách cho các kết nối được mã hóa trong tài liệu MySQL

Khi sử dụng MySQL 5. 7 hoặc MySQL 8. 0 Máy khách, kết nối SSL yêu cầu xác minh đối với chứng chỉ CA của máy chủ nếu đối với tùy chọn

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
3, bạn chỉ định
+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
1 hoặc
+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
2, như trong ví dụ sau

mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/ssl-cert.pem --ssl-mode=VERIFY_CA

Khi sử dụng MySQL 5. 6 Máy khách, kết nối SSL yêu cầu xác minh đối với chứng chỉ CA của máy chủ nếu bạn chỉ định tùy chọn

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
6, như trong ví dụ sau

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
1

Để biết thông tin về cách cập nhật kho tin cậy cho các ứng dụng MySQL, hãy xem Cài đặt chứng chỉ SSL trong tài liệu MySQL

Khi bạn cập nhật cửa hàng tin cậy, bạn có thể giữ lại các chứng chỉ cũ hơn ngoài việc thêm các chứng chỉ mới

Bạn có thể cập nhật kho tin cậy cho các ứng dụng sử dụng JDBC cho các kết nối SSL/TLS

Để biết thông tin về cách tải xuống chứng chỉ gốc, hãy xem Sử dụng SSL/TLS để mã hóa kết nối tới cụm DB

Đối với tập lệnh mẫu nhập chứng chỉ, hãy xem Tập lệnh mẫu để nhập chứng chỉ vào cửa hàng tin cậy của bạn

Nếu bạn đang sử dụng trình điều khiển mysql JDBC trong một ứng dụng, hãy đặt các thuộc tính sau trong ứng dụng

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
2

Khi bạn khởi động ứng dụng, hãy đặt các thuộc tính sau

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
3

Ví dụ mã sau đây cho biết cách thiết lập kết nối SSL xác thực chứng chỉ máy chủ bằng JDBC

+----+-----------------+------------------+-----------------+
| id | user            | host             | connection_type |
+----+-----------------+------------------+-----------------+
|  8 | admin           | 10.0.4.249:42590 | SSL/TLS         |
|  4 | event_scheduler | localhost        | NULL            |
| 10 | webapp1         | 159.28.1.1:42189 | SSL/TLS         |
+----+-----------------+------------------+-----------------+
3 rows in set [0.00 sec]
4

Sau khi bạn đã xác định rằng các kết nối cơ sở dữ liệu của mình sử dụng SSL/TLS và đã cập nhật cửa hàng tin cậy ứng dụng của mình, bạn có thể cập nhật cơ sở dữ liệu của mình để sử dụng chứng chỉ rds-ca-2019. Để biết hướng dẫn, hãy xem bước 3 trong Cập nhật chứng chỉ CA của bạn bằng cách sửa đổi phiên bản CSDL của bạn

Sử dụngSSL trong MySQL là gì?

Thuộc tính useSSL=true được thêm vào URL JDBC để cố gắng giao tiếp qua SSL . Có thể thêm thuộc tính requireSSL=true để chỉ kết nối nếu máy chủ cơ sở dữ liệu hỗ trợ SSL. Thuộc tính verifyServerCertiate=false được đặt để bỏ qua xác thực chứng chỉ.

MySQL có yêu cầu SSL không?

MySQL hỗ trợ các kết nối được mã hóa giữa máy khách và máy chủ bằng giao thức TLS [Bảo mật tầng truyền tải]. TLS đôi khi được gọi là SSL [Lớp cổng bảo mật] nhưng MySQL không thực sự sử dụng giao thức SSL cho các kết nối được mã hóa vì khả năng mã hóa của nó yếu [xem Phần . 3.

Làm cách nào để sử dụng SSL với MySQL?

Định cấu hình kết nối SSL MySQL .
Tạo thư mục để lưu trữ các khóa SSL. Để tạo thư mục chứa khóa SSL, hãy thực hiện các bước sau. .
Tạo khóa SSL. Ghi chú. .
Chỉnh sửa cấu hình MySQL. .
Kiểm tra cấu hình SSL. .
Tạo người dùng và cho phép truy cập từ xa. .
Kiểm tra kết nối MySQL từ xa

useSSL sai trong MySQL là gì?

Để tuân thủ các ứng dụng hiện tại không sử dụng SSL, thuộc tính verifyServerCertificate được đặt thành 'false'. Bạn cần phải tắt SSL rõ ràng bằng cách đặt useSSL=false hoặc đặt useSSL=true và cung cấp cửa hàng tin cậy để xác minh chứng chỉ máy chủ.

Chủ Đề