2010-07-04 35 views
5

Tôi đặt cơ sở dữ liệu của mình thành yêu cầu ssl. Tôi đã xác nhận rằng tôi có thể kết nối với db qua dòng lệnh bằng cách chuyển khóa công khai [và đã xác nhận rằng tôi không thể kết nối nếu tôi không vượt qua khóa công khai]Kết nối SSL MySQLDB của Python

Tôi gặp lỗi tương tự trong ứng dụng django của mình khi Tôi không vượt qua một chìa khóa. Có vẻ như tôi đã không thiết lập chính xác settings.py của mình để chuyển đường dẫn đến khóa công khai.

Điều gì xảy ra với cài đặt của tôi? Tôi đang sử dụng python-mysqldb.

DATABASES['default'] = { 
    'ENGINE': 'django.db.backends.mysql', 
    'HOST': 'my-host-goes-here', 
    'USER': 'my-user-goes-here', 
    'NAME': 'my-db-name-goes-here', 
    'PASSWORD': 'my-db-pass-goes-here', 
    'OPTIONS': { 
     'SSL': '/path/to/cert.pem', 
    } 
} 
+0

Bạn có thể kết nối bằng cách sử dụng 'MySQLdb' trống không? –

+0

có, tôi có thể kết nối theo các hướng dẫn sau: http://riskable.com/?p=271 nhưng tôi dường như không thể tìm thấy tương đương với cách thể hiện ssl_settings trong tùy chọn cơ sở dữ liệu của django. –

Trả lời

8

Tìm câu trả lời. TÙY CHỌN sẽ giống như sau:

'OPTIONS': {'ssl': {'ca':'/path/to/cert.pem',},}, 

Đảm bảo bạn giữ dấu phẩy, phân tích cú pháp dường như không thành công?

1

Client mysql phải được cung cấp với ba phím:

CA cert khách hàng cert khách hàng chủ chốt

Xem tài liệu Mysql cho hướng dẫn để tạo các phím và thiết lập máy chủ: http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-certs.html

LƯU Ý: Có sự cố mở có vẻ liên quan đến việc sử dụng openssl v1.0.1 để tạo chứng chỉ cho mysql 5.5.x (http://bugs.mysql.com/bug.php?id=64870)

Đây là mục nhập ví dụ cho tệp cài đặt Django:

DATABASES = { 
'default': { 
       'ENGINE': 'django.db.backends.mysql', 
       'NAME': '<DATABASE NAME>',      
       'USER': '<USER NAME>', 
       'PASSWORD': '<PASSWORD>', 
       'HOST': '<HOST>', 
       'PORT': '3306'  
       'OPTIONS': { 
         'ssl': {'ca': '<PATH TO CA CERT>', 
           'cert': '<PATH TO CLIENT CERT>', 
           'key': '<PATH TO CLIENT KEY>' 
           } 
          } 
      } 
} 
Các vấn đề liên quan