आप कुछ mysql2 SSL params
निर्दिष्ट कर सकते हैं DATABASE_URL
. के माध्यम से विन्यास वे डायनामिक database.yml
. में आइटम के रूप में जुड़ जाएंगे जो हरोकू निर्माण प्रक्रिया के दौरान उत्पन्न होता है, और इसलिए जब mysql2 कनेक्शन बनाए जाते हैं तो वे पास हो जाएंगे।
इसके लिए काम करने के लिए आपको केवल एक ही परम की आवश्यकता है sslca
(sslcapath
. के साथ भ्रमित होने की नहीं )।
<मजबूत>1. डाउनलोड करें> और इसे अपने ऐप के साथ बंडल करें।
(संपादित करें) अमेज़ॅन घूर्णन होगा यह प्रमाणपत्र मार्च 2015 में। आपको इस पृष्ठ के बजाय उस पृष्ठ से नई फ़ाइल की आवश्यकता होगी।
curl https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem > ./config/amazon-rds-ca-cert.pem
<मजबूत>2. फ़ाइल को git में जोड़ें, और Heroku में पुन:नियोजित करें।
<मजबूत>3. DATABASE_URL
बदलें sslca
pass पास करने के लिए :
heroku config:add DATABASE_URL="mysql2://username:[email protected]/dbname?sslca=config/amazon-rds-ca-cert.pem -a <app_id>
वहां का सापेक्ष पथ महत्वपूर्ण है—नीचे देखें।
इतना ही! अब जब आपके पास एसएसएल काम कर रहा है, तो आप यह लागू करना चाहेंगे कि उस उपयोगकर्ता के साथ सभी कनेक्शन केवल एसएसएल की अनुमति दें:
GRANT USAGE ON dbname.* TO 'username'@'%' REQUIRE SSL;
समस्या निवारण
sslca
. के सापेक्ष पथ पास करना सुनिश्चित करें ! अन्यथा, rake assets:precompile
SSL त्रुटि के साथ टूट सकता है। अगर आपको कोई त्रुटि मिलती है जैसे:
SSL connection error: ASN: bad other signature confirmation
या सिर्फ:
SSL connection error
...तो CA प्रमाणपत्र फ़ाइल के संदर्भ में कुछ गड़बड़ होने की संभावना है।