Cách cài đặt MySQL và cấu hình SSL?

Trong cấu hình này, các thông báo cảnh báo sau có thể xuất hiện nếu bạn đang sử dụng MySQL cao hơn 5. 5. 45+, 5. 6. 26+ và 5. 7. 6+

Không nên thiết lập kết nối SSL mà không có xác minh danh tính của máy chủ. Theo MySQL5. 5. 45+, 5. 6. 26+ và 5. 7. Hơn 6 yêu cầu Kết nối SSL phải được thiết lập theo mặc định nếu tùy chọn rõ ràng không được đặt. Để tuân thủ các ứng dụng hiện có không sử dụng SSL, thuộc tính verifyServerCertificate được đặt thành 'false'. Bạn cần tắt SSL một cách 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ủ

1) Chạy lệnh sau để xác nhận rằng SSL không được bật trên MySQL

mysql> show global variables like '%ssl%'; +---------------+----------+ | Variable_name | Value | +---------------+----------+ | have_openssl | DISABLED | | have_ssl | DISABLED | | .. | .. |

2) Chạy các lệnh sau để tạo khóa Tổ chức phát hành chứng chỉ (CA)

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

3) Chạy các lệnh sau để tạo chứng chỉ và khóa SSL máy chủ

Nếu bạn đang tạo chứng chỉ để sử dụng với MySQL, hãy đảm bảo rằng bạn chuyển đổi khóa RSA sang định dạng PKCS #1 PEM truyền thống và chứng chỉ đó đang sử dụng thông báo SHA1

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

4) Cập nhật quyền sở hữu thư mục chứng chỉ, tệp và quyền cập nhật

chown -R mysql:mysql /etc/mysql

5) Cập nhật tệp cấu hình của MySQL /etc/my. cnf. Bao gồm phần này trong phần [mysqld]

[mysqld] ssl-ca = /etc/mysql/ca-cert.pem ssl-cert = /etc/mysql/server-cert.pem ssl-key = /etc/mysql/server-key.pem

6) Xác định vị trí và nhận xét trong /etc/my. cnf

7) Kích hoạt biến để bắt buộc khách hàng phải kết nối bằng kết nối được mã hóa

[mysqld] # Require clients to connect either using SSL # or through a local socket file require_secure_transport = ON

8) Khởi động lại dịch vụ/máy chủ mysql

9) Đăng nhập vào MySQL và xác thực rằng ssl đã được bật cho MySQL

mysql -u root -p --ssl-mode=required

mysql> show global variables like '%ssl%'; +---------------+----------------------------+ | Variable_name | Value | +---------------+----------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/mysql/ca-cert.pem | | ssl_capath | | | ssl_cert | /etc/mysql/server-cert.pem | | ssl_cipher | | | ssl_crl | | | ssl_crlpath | | | ssl_key | /etc/mysql/server-key.pem | +---------------+----------------------------+

10) Và kiểm tra trạng thái

________số 8_______

Nếu SSL không được bật, hãy tìm manh mối xem liệu MySQL có gặp sự cố khi tải chứng chỉ hay không

11) Cập nhật người dùng cơ sở dữ liệu Cổng để yêu cầu SSL

Các lệnh sau buộc tất cả các kết nối sử dụng SSL bất kể những gì được đặt trong cấu hình Cổng. Nó phải khớp với những gì được đặt ở đây (cho dù SSL được bật hay tắt cho người dùng db Cổng)

mysql> UPDATE mysql.user SET ssl_type = 'ANY' WHERE user = 'gateway'; mysql> FLUSH PRIVILEGES;

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

0

13) Chạy lệnh sau để xác minh rằng MySQL chỉ chấp nhận các kết nối SSL. Đảm bảo rằng máy khách MySQL không kết nối với máy chủ MySQL

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

1

14) Thêm phần sau vào nút của Cổng. của cải. Điều này sẽ cho phép các kết nối Hibernate sử dụng SSL

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

2

Việc thiết lập có thể dẫn đến cảnh báo trong nhật ký SSG

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

3

Xem phần tiếp theo để bật Xác thực chứng chỉ máy chủ. Sau khi được bật, các thông báo cảnh báo ở trên không xuất hiện nữa

Thiết lập MySQL SSL với Xác thực chứng chỉ máy chủ

Chứng chỉ được ký bởi CA đáng tin cậy

Không cần cấu hình bổ sung đối với các chứng chỉ được thực hiện liên quan đến xác thực máy chủ. Java xác minh chứng chỉ máy chủ bằng các chứng chỉ CA đáng tin cậy mặc định của nó, thường là từ $Java_HOME/lib/security/cacerts

Sử dụng chứng chỉ tự ký

Để xác minh chứng chỉ máy chủ, khách hàng cần đọc được chứng chỉ đã ký nó--chứng chỉ máy chủ đã tự ký hoặc chứng chỉ CA tự ký

1) Nhập chứng chỉ vào tệp kho tin cậy Java tùy chỉnh và định cấu hình trình điều khiển máy khách tương ứng, hãy làm theo các bước sau

2) Từ nút chứa ca-cert. pem, tạo một kho tin cậy và nhập Chứng chỉ CA từ bước trước đã được sử dụng để tự ký chứng chỉ máy chủ MySQL

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

4

3) Chạy lệnh sau để xác minh Chứng chỉ CA có trong cửa hàng ủy thác

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

5

4) Sao chép cửa hàng ủy thác. jks tới tất cả các nút sẽ kết nối với MySQL /etc/mysqlclient

5) Thay đổi quyền của tệp JKS

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

6

6) Thêm các dòng sau vào tệp

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

7

Chứng chỉ máy chủ hiện đã được xác thực và các thông báo cảnh báo không còn hiển thị nữa

Cả máy chủ chính và máy chủ phụ phải hỗ trợ các kết nối mạng được mã hóa để có thể sử dụng các kết nối được mã hóa để truyền nhật ký nhị phân được yêu cầu trong quá trình sao chép. Nếu một trong hai máy chủ không hỗ trợ kết nối được mã hóa thì không thể sao chép thông qua kết nối được mã hóa

Thiết lập kết nối được mã hóa để sao chép tương tự như quy trình được thực hiện cho kết nối máy khách/máy chủ. Tạo hoặc lấy chứng chỉ bảo mật phù hợp mà bạn có thể sử dụng trên máy chủ và chứng chỉ tương tự từ cùng một tổ chức phát hành chứng chỉ trên mỗi nô lệ cùng với các tệp khóa phù hợp

Làm theo các bước sau trên cả hai nút MySQL vì Cổng sử dụng bản sao MASTER-MASTER

1) Chạy các lệnh sau để tạo chứng chỉ và khóa SSL máy khách

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

8

2) Cập nhật tệp cấu hình của MySQL /etc/my. cnf để bao gồm các chứng chỉ ứng dụng khách trong phần [máy khách]

mkdir /etc/mysql cd /etc/mysql openssl genrsa 2048 > ca-key.pem openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

9

3) Khởi động lại dịch vụ/máy chủ mysql

4) Cập nhật người dùng sao chép Cổng để yêu cầu SSL

Các lệnh sau buộc tất cả các kết nối sử dụng SSL bất kể những gì được đặt trong cấu hình sao chép. Nó phải phù hợp với những gì được đặt ở đây (cho dù SSL được bật hay tắt cho người dùng sao chép).

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

0

5) Khởi động lại nô lệ bằng các lệnh sau

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

1

6) Kiểm tra trạng thái bằng lệnh sau

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

2

7) Khởi động lại bản sao nếu bạn thấy lỗi khi kết nối với Bản chính

Kết nối với Cơ sở dữ liệu MySQL Yêu cầu TLS v1. 2

Một số cơ sở dữ liệu MySQL hỗ trợ SSL/TLS có thể bị hạn chế chỉ cho phép TLS v. 1. 2 khi các máy khách như Cổng đang kết nối với nó như một phần của yêu cầu bảo mật. Trình điều khiển cơ sở dữ liệu được sử dụng bởi Cổng có thể đưa ra một số giả định về cơ sở dữ liệu bên ngoài mà nó đang kết nối và giới hạn phiên bản TLS thành TLS v1. 1. Đây là trường hợp đặc biệt đối với cơ sở dữ liệu MySQL không đi kèm với Cổng (e. g. , cơ sở dữ liệu MySQL dựa trên đám mây như AWS Aurora)

Do sự khác biệt trong việc chấp nhận phiên bản TLS giữa máy khách Gateway và cơ sở dữ liệu MySQL, điều này có thể dẫn đến kết nối cơ sở dữ liệu không thành công

Có hai vị trí chính trong Cổng mà các phiên bản TLS có thể được định cấu hình và thực thi, tùy thuộc vào loại kết nối. nút. tệp thuộc tính và công cụ Quản lý kết nối JDBC trong Trình quản lý chính sách

Thực thi TLS v1. 2 trong nút. của cải

nút. tập tin thuộc tính được đặt trong

/opt/SecureSpan/Gateway/node/default/etc/conf/

Khi Gateway khởi động, nút. các thuộc tính được sử dụng một phần để bắt đầu kết nối với cơ sở dữ liệu MySQL. Để đảm bảo rằng mọi kết nối cơ sở dữ liệu đều sử dụng TLS v1. 2, thêm dòng sau vào nút. tệp thuộc tính.

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

3

Thực thi TLS v1. 2 trong Quản lý kết nối JDBC (Trình quản lý chính sách)

Nếu chính sách hoặc dịch vụ web của bạn hiện đang sử dụng xác nhận Thực hiện Truy vấn JDBC và Cổng không cung cấp TLS v1. 2 trong khi thử kết nối với cơ sở dữ liệu MySQL yêu cầu TLS v1. 2, đảm bảo rằng URL JDBC được thêm vào thuộc tính và giá trị sau.

openssl req -sha1 -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem > server-req.pem openssl x509 -sha1 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem openssl rsa -in server-key.pem -out server-key.pem

4

Làm cách nào để bật SSL trên cơ sở dữ liệu MySQL?

Bật kết nối SSL trên MySQL . mysql -u root -p --ssl-mode=required mysql> HIỂN THỊ CÁC BIẾN NHƯ '%ssl%'; Bạn sẽ thấy rằng cả have_openssl và have_ssl .

Làm cách nào để tạo chứng chỉ SSL cho MySQL?

ini của máy chủ MySQL và trên tab Bảo mật của hộp thoại Thuộc tính kết nối cơ sở dữ liệu. .
Tải xuống OpenSSL. .
Mở dấu nhắc lệnh bằng cách sử dụng Start -> Run -> cmd và nhập nội dung sau để chuyển đến thư mục cài đặt OpenSSL (ví dụ: D. \OpenSSL)

Làm cách nào để bật SSL trong MySQL Workbench?

Định cấu hình MySQL Workbench để kết nối an toàn qua SSL. .
Từ hộp thoại Thiết lập kết nối mới, điều hướng đến tab SSL
Cập nhật trường Sử dụng SSL thành "Yêu cầu"
Trong tệp SSL CA. trường, hãy nhập vị trí tệp của BaltimoreCyberTrustRoot. crt. pem

MySQL có sử dụng SSL theo mặc định không?

Cấu hình SSL mặc định trong MySQL . Tuy nhiên, không bắt buộc khách hàng kết nối bằng SSL. Khách hàng có thể chọn kết nối có hoặc không có SSL vì máy chủ cho phép cả hai loại kết nối. By default, MySQL server always installs and enables SSL configuration. However, it is not enforced that clients connect using SSL. Clients can choose to connect with or without SSL as the server allows both types of connections.