स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाने के बाद, मैंने उनका उपयोग करने के लिए अपने दूरस्थ MySQL सर्वर को कॉन्फ़िगर किया है (और SSL सक्षम है)
मैं अपने दूरस्थ सर्वर में ssh, और SSL (MySQL सर्वर 5.5.25) का उपयोग करके अपने स्वयं के mysqld से कनेक्ट करने का प्रयास करता हूं।
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)
ठीक है, मुझे याद है कि एसएसएल के माध्यम से एक ही सर्वर से कनेक्ट होने के साथ रीडिंग कुछ समस्या है। इसलिए मैं क्लाइंट कुंजियों को अपने स्थानीय बॉक्स में डाउनलोड करता हूं, और वहां से परीक्षण करता हूं ...
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
यह स्पष्ट नहीं है कि यह "SSL कनेक्शन त्रुटि" त्रुटि किसको संदर्भित करती है, लेकिन अगर मैं इसे छोड़ देता -ssl-ca
हूं, तो मैं 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)
हालांकि, मेरा मानना है कि यह केवल कनेक्शन को एन्क्रिप्ट कर रहा है, और वास्तव में प्रमाण की वैधता की पुष्टि नहीं कर रहा है (जिसका अर्थ है कि मैं संभावित रूप से मैन-इन-मिडिल हमले के लिए कमजोर हो सकता हूं)
SSL सेरेस्ट मान्य हैं (यद्यपि स्वयं हस्ताक्षरित), और उन पर पासफ़्रेज़ नहीं है। तो मेरा सवाल यह है कि मैं क्या गलत कर रहा हूं? मैं स्वयं हस्ताक्षरित प्रमाण पत्र का उपयोग करके एसएसएल के माध्यम से कैसे जुड़ सकता हूं?
MySQL सर्वर संस्करण 5.5.25 है और सर्वर और क्लाइंट CentOS 5 हैं।
किसी भी सलाह के लिए धन्यवाद
संपादित करें : ध्यान दें कि सभी मामलों में, कमांड उसी निर्देशिका से जारी की जा रही है जहां ssl कुंजियाँ रहती हैं (इसलिए कोई पूर्ण पथ नहीं)
संपादित करें (mgorven के जवाब में):
ca.cert
प्रमाण पत्र प्राधिकरण प्रमाण पत्र है, जो कि mysql को यह बताने वाला है कि मेरा प्रमाणपत्र प्राधिकरण विश्वसनीय है।
से विन्यास my.cnf
है
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
मैंने भी जोड़ने की कोशिश की ssl-cipher=DHE-RSA-AES256-SHA
लेकिन तब से इसे हटा दिया है क्योंकि यह मदद नहीं करता है।
ca.cert
? क्या यह सर्वर का स्वयं हस्ताक्षरित प्रमाण पत्र है? क्या आप प्रमाणीकरण के लिए क्लाइंट प्रमाणपत्र का उपयोग कर रहे हैं? कृपया सर्वर पर SSL संबंधित कॉन्फ़िगरेशन प्रदान करें।