2013-03-14 21 views
6

Tôi đang cố gắng thiết lập ssl cho mysql bằng cách tham chiếu this.
tôi có thể hoàn thành 3 bước đầu tiên nhưng có vấn đề với 4 mà là như sau:Tích hợp ssl với mysql - Truy cập bị từ chối

GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL; 
FLUSH PRIVILEGES; 

Sau đó, tôi khởi động lại máy chủ mysql.

Sau khi thực hiện tuyên bố này khi tôi cố gắng chạy mysql -ussluser -pssluser -P3306 --ssl-key="C:\Program Files\MySQL\MySQL Server 5.5\certs\ca-cert.pem",
nó cho thấy lỗi sau: Truy cập bị từ chối cho người dùng ssluser '@ 'localhost'(sử dụng mật khẩu: YES)
Tôi đang sử dụng đây như đó là cổng mặc định của tôi.

Cách có thể nói Quyền truy cập bị từ chối khi tôi đã thực hiện Tuyên bố GRANT.

Lưu ý rằng

  • tôi thực hiện mysql -ussluser -psslusertrước sử dụng CẤP tuyên bố với REQUIRE SSL và tôi đã có thể kết nối với mysql.

  • Nếu tôi cố gắng SHOW GRANTS FOR 'ssluser'@'localhost';
    tôi nhận được

    GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION 
    
  • Trước khi thực hiện CẤP tuyên bố, tôi đã có thể kết nối với workbench qua ssluser. Nhưng hiện tại, việc cấp quyền truy cập của mình bị từ chối lỗi.

  • Khi tôi sử dụng show global variables like 'have_%ssl'; tôi nhận được

    have_openssl DISABLED have_ssl DISABLED

  • và khi tôi sử dụng SHOW STATUS LIKE 'Ssl_cipher'; này tôi nhận được

    Ssl_cipher _________

  • Tôi đã tạo ra tất cả các máy chủ và khách hàng chứng chỉ và đặt chúng vào certs thư mục bên trong mysql server thư mục gốc.

Tôi đang thử nó từ vài ngày nhưng không tìm thấy gì. Bất kỳ trợ giúp nào được đánh giá cao.

Tôi đang thực hiện việc này lần đầu tiên. Bất cứ ai có thể hướng dẫn tôi thông qua các thủ tục chi tiết để làm điều này?

Trả lời

6

Tôi đã đấu tranh với một thông báo lỗi tương tự ngày hôm nay và đây là những gì tôi phát hiện ra.

  1. Tùy chọn "REQUIRE SSL" cho GRANT chỉ yêu cầu SSL để kết nối và không yêu cầu cấp chứng chỉ phía máy khách.
  2. CLI mysql không xử lý SSL như tôi mong đợi. Ví dụ, trên MySQL 5.5, tùy chọn --ssl dường như không thực sự cho phép truyền tải SSL.
  3. Tôi phải thêm tùy chọn --ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA để máy khách mysql thực sự sử dụng SSL và cho phép xác thực với ứng dụng khách.

Dưới đây là các bước chính xác tôi đã sử dụng để thiết lập người dùng mới của tôi:

CREATE USER 'ssl-user'@'%' identified by '<password>'; 
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL; 
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%'; 
+0

thêm --ssl-ca cũng làm các trick – Igor

+0

Đối với tôi, tôi đã có thêm --ssl-mật mã = ​​DHE- RSA-AES256-SHA: AES128-SHA và rút ngắn mật khẩu còn 50 ký tự để cho phép tôi kết nối từ xa. – Khronos

+0

+1: Cuối cùng cũng có thể nhận được MySQL Workbench để kết nối qua SSL bằng cách chỉ định thiết lập Mật mã SSL thành 'DHE-RSA-AES256-SHA: AES128-SHA'! – antak