Sau khi tạo chứng chỉ SSL tự ký, tôi đã cấu hình máy chủ MySQL từ xa của mình để sử dụng chúng (và SSL được bật)
Tôi ssh vào máy chủ từ xa của mình và thử kết nối với mysqld của chính nó bằng SSL (máy chủ MySQL là 5.5.25) ..
mysql -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Ok, tôi nhớ đã đọc có một số vấn đề với việc kết nối với cùng một máy chủ thông qua SSL. Vì vậy, tôi tải các khóa máy khách xuống hộp cục bộ của mình và kiểm tra từ đó ...
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error
Không rõ lỗi "lỗi kết nối SSL" này là gì, nhưng nếu tôi bỏ qua -ssl-ca
, thì tôi có thể kết nối bằng SSL ..
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.25 MySQL Community Server (GPL)
Tuy nhiên, tôi tin rằng đây chỉ là mã hóa kết nối và không thực sự xác minh tính hợp lệ của chứng chỉ (có nghĩa là tôi sẽ dễ bị tấn công giữa chừng)
Các chứng chỉ SSL là hợp lệ (mặc dù tự ký) và không có cụm mật khẩu trên chúng. Vì vậy, câu hỏi của tôi là, tôi đang làm gì sai? Làm cách nào tôi có thể kết nối qua SSL, bằng chứng chỉ tự ký?
Phiên bản máy chủ MySQL là 5.5.25 và máy chủ và máy khách là CentOS 5.
Cảm ơn vì lời khuyên
Chỉnh sửa : Lưu ý rằng trong mọi trường hợp, lệnh được phát ra từ cùng thư mục chứa các khóa ssl (do đó không có đường dẫn tuyệt đối)
Chỉnh sửa (để phản hồi với mgorven):
ca.cert
là chứng chỉ của Cơ quan cấp chứng chỉ, được cho là để thông báo cho mysql rằng cơ quan cấp chứng chỉ của tôi được tin cậy.
Cấu hình từ my.cnf
là
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Tôi cũng đã thử thêm ssl-cipher=DHE-RSA-AES256-SHA
nhưng đã loại bỏ nó vì nó không giúp ích gì.
ca.cert
gì Đây có phải là chứng chỉ tự ký của máy chủ không? Bạn đang sử dụng chứng chỉ ứng dụng khách để xác thực? Vui lòng cung cấp cấu hình liên quan đến SSL trên máy chủ.