2010-07-04 18 views
5

मैंने अपना डेटाबेस एसएसएल की आवश्यकता के लिए सेट किया है। मैंने पुष्टि की है कि मैं सार्वजनिक कुंजी को पार करके कमांड लाइन के माध्यम से डीबी से कनेक्ट कर सकता हूं [और पुष्टि की है कि अगर मैं सार्वजनिक कुंजी पास नहीं करता हूं तो मैं कनेक्ट नहीं कर सकता]पायथन MySQLDB SSL कनेक्शन

मुझे अपने django ऐप में एक ही त्रुटि मिलती है मैं एक कुंजी पास नहीं करता हूं। ऐसा लगता है कि मैंने सार्वजनिक कुंजी के पथ को पारित करने के लिए सही ढंग से मेरी सेटिंग्स.py सेट नहीं की है।

मेरी सेटिंग्स में क्या गलत है? मैं अजगर-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

आप नंगे 'MySQLdb' का उपयोग कर कनेक्ट करने में सक्षम रहे हैं? –

+0

हां, मैं इन निर्देशों का पालन कर कनेक्ट कर सकता हूं: http://riskable.com/?p=271 लेकिन मुझे django के डेटाबेस विकल्पों में ssl_settings को व्यक्त करने के बराबर नहीं लगता है। –

उत्तर

8

उत्तर मिला। विकल्प इस तरह दिखना चाहिए:

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

सुनिश्चित करें कि आप अल्पविराम के रखने के लिए, पार्स अन्यथा विफल लग रहा था करें?

1

mysql ग्राहक तीन कुंजी के साथ प्रदान की जानी चाहिए:

CA प्रमाणपत्र प्रमाणपत्र ग्राहक क्लाइंट कुंजी

इन कुंजियों बनाने और सर्वर की स्थापना के लिए निर्देश के लिए Mysql दस्तावेज़ देखें: http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-certs.html

नोट: एक खुली समस्या है जो mysql 5.5.x (http://bugs.mysql.com/bug.php?id=64870)

के लिए प्रमाणपत्र बनाने के लिए openssl v1.0.1 का उपयोग करने से संबंधित प्रतीत होता है।

यह वह जगह है 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>' 
           } 
          } 
      } 
} 
संबंधित मुद्दे