UPDATE2
ওয়্যারশার্ক ব্যবহার করে আমি সমস্যার স্ট্রিং খুঁজে পেয়েছি (আশা করি আমি এটি করেছি):
28 | 9.582638 | 192.168.18.128 | 192.168.18.129 | MySQL Response Error 1043
এবং ত্রুটিটি হ'ল ( ডক্স অনুসারে ):
Error: 1043 SQLSTATE: 08S01 (ER_HANDSHAKE_ERROR)
Message: Bad handshake
এখানে দুটি ক্ষেত্রে ওয়্যারশার্কের স্ক্রিনশট রয়েছে:
উইন্ডোজ 8 (সাফল্য) থেকে সংযোগ:
CentOS থেকে সংযোগ (ব্যর্থ):
কেন এমন হয়?
হালনাগাদ
এক আকর্ষণীয় বিজ্ঞপ্তি:
আমি সফলভাবে উইন্ডোজ 8 ব্যবহার করছেন মাস্টার ডিবি সঙ্গে সংযুক্ত করেছেন (192.168.18.1)
জন্য মাস্টার উপর ssluser সেটিং পরিবর্তন করে 192.168.18.1
হোস্ট - একটি পরিবর্তনটি করে থেকে REQUIRE SSL
থেকে REQUIRE X509
। তবে এটি স্লেভ-টু-মাস্টার সংযোগ নিয়ে আমাদের ক্ষেত্রে কাজ করে না।
আমি CentOS-6.3 এ এসএসএল প্রতিলিপি সমস্যার সম্মুখীন হয়েছি। আমি উভয় ক্লায়েন্ট এবং সার্ভার শংসাপত্র তৈরি করতে ওপেনএসএসএল ব্যবহার করছি এবং উভয় ক্লায়েন্ট এবং সার্ভার শংসাপত্র একই সিএ দ্বারা স্বাক্ষরিত
Server IP: 192.168.18.128
Slave IP: 192.168.18.129
MySQL version 5.1.66 SSL
মাইএসকিউএল সহায়তা পৃষ্ঠাগুলির "এসএসএল শংসাপত্রগুলি এবং মাইএসকিউএলের জন্য কীগুলি সেট আপ করা " ব্যবহার করে আমি প্রাপ্ত সমস্ত শংসাপত্র ।
সার্ভারের my.cnf ফাইল:
[mysqld]
ssl-key=/etc/mysql/certs/server-key.pem
ssl-cert=/etc/mysql/certs/server-cert.pem
ssl-ca=/etc/mysql/certs/ca-cert.pem
ক্লায়েন্টের my.cnf ফাইল:
[client]
ssl-ca=/etc/mysql/ssl/ca-cert.pem
ssl-key=/etc/mysql/ssl/client-key.pem
ssl-cert=/etc/mysql/ssl/client-cert.pem
মাস্টার এ আমি এসএসএল সহ দাস ব্যবহারকারীদের সেটআপ করেছি:
CREATE USER 'ssluser'@'192.168.18.129' IDENTIFIED BY 'sslpass';
GRANT REPLICATION SLAVE ON *.* TO 'ssluser'@'192.168.18.129' REQUIRE SSL;
স্লেভ আপডেট করার জন্য আমি নিম্নলিখিত কমান্ডটি ব্যবহার করছি (আদেশ অনুসারে show master status
):
SLAVE STOP;
CHANGE MASTER TO \
MASTER_HOST='192.168.18.128', \
MASTER_USER='sslreplicant', \
MASTER_PASSWORD='db.sslreplicantprimary', \
MASTER_LOG_FILE='mysql-bin.000026', \
MASTER_LOG_POS=106, \
MASTER_SSL=1, \
MASTER_SSL_CA='/etc/mysql/certs/ca-cert.pem', \
MASTER_SSL_CAPATH='/etc/mysql/certs/', \
MASTER_SSL_CERT='/etc/mysql/certs/client-cert.pem',\
MASTER_SSL_KEY='/etc/mysql/certs/client-key.pem';
SLAVE START;
প্রতিলিপি নিজেই ভাল কাজ করে:
mysql> SHOW VARIABLES LIKE '%ssl%';
have_openssl = YES
have_ssl = YES
ssl_ca = /etc/mysql/certs/ca-cert.pem
ssl_capath =
ssl_cert = /etc/mysql/certs/server-cert.pem
ssl_cipher =
ssl_key = /etc/mysql/certs/server-key.pem
এটি উভয়ই - মাস্টার এবং স্লেভের উপর।
তবে যখন আমি ম্যানুয়ালি স্লেভ থেকে মাস্টারটির সংযোগটি পরীক্ষা করি তখন আমি একটি ত্রুটি পাই।
আমি এখন পর্যন্ত চেষ্টা করা বিকল্পগুলি এখানে রয়েছে (সবার কাছ থেকে একই ফলাফল):
[gahcep@localhost ~]$ mysql -u ssluser -h 192.168.18.128 -p
[gahcep@localhost ~]$ mysql --ssl --ssl-ca=/etc/mysql/certs/ca-cert.pem \
-u ssluser -h 192.168.18.128 -p
[gahcep@localhost ~]$ mysql --ssl-ca=/etc/mysql/certs/ca-cert.pem \
--ssl-cert=/etc/mysql/certs/client-cert.pem \
--ssl-key=/etc/mysql/certs/client-key.pem \
-u ssluser -h 192.168.18.128 -p
Enter password:
ERROR 2026 (HY000): SSL connection error
ধাপ পুনর্গঠন কর:
- একই সিএ স্বাক্ষরিত উভয় ক্লায়েন্ট এবং সার্ভার শংসাপত্রগুলি সেটআপ / তৈরি করুন
- এই থ্রেডে উল্লিখিত ক্লায়েন্ট এবং সার্ভারগুলিতে উভয়ই my.cnf ফাইল সেটআপ করুন
- দাসের জন্য মাস্টারের উপর স্লুউসার তৈরি করুন
- mysql -u ssluser -h 192.168.18.128 -p
দয়া করে নোট করুন, আমি প্রকৃতপক্ষে সমস্ত শংসাপত্রগুলির জন্য বিভিন্ন সাধারণ নাম ব্যবহার করেছি: সিএ, ক্লায়েন্ট এবং সার্ভারের জন্য।
অতিরিক্ত তথ্য
যাচাইয়ের ফলাফল:
[gahcep@localhost ~]$ sudo openssl verify -purpose sslclient \
-CAfile /etc/mysql/certs/ca-cert.pem /etc/mysql/certs/client-cert.pem
/etc/mysql/certs/client-cert.pem: OK
[gahcep@localhost ~]$ sudo openssl verify -purpose sslserver \
-CAfile /etc/mysql/certs/ca-cert.pem /etc/mysql/certs/server-cert.pem
/etc/mysql/certs/server-cert.pem: OK
তথ্য সরবরাহ করে:
সিএ:
[gahcep@localhost ~]$ sudo openssl x509 -noout -subject -issuer -dates \
-serial -hash -fingerprint -in /etc/mysql/certs/ca-cert.pem
subject= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=PriSec
issuer= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=PriSec
notBefore=Jan 4 06:27:46 2013 GMT
notAfter=Nov 13 06:27:46 2022 GMT
serial=B45D177E85F99578
c2c5b88b
SHA1 Fingerprint=5B:07:AA:39:28:24:CE:1A:CF:35:FA:14:36:23:65:8F:84:61:B0:1C
ক্লায়েন্ট শংসাপত্র:
[gahcep@localhost ~]$ sudo openssl x509 -noout -subject -issuer -dates \
-serial -hash -fingerprint -in /etc/mysql/certs/client-cert.pem
subject= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=Secondary
issuer= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=PriSec
notBefore=Jan 4 06:29:07 2013 GMT
notAfter=Nov 13 06:29:07 2022 GMT
serial=01
6df9551f
SHA1 Fingerprint=F5:9F:4A:14:E8:96:26:BC:71:79:43:5E:18:BA:B2:24:BE:76:17:52
সার্ভার শংসাপত্র:
[gahcep@localhost ~]$ sudo openssl x509 -noout -subject -issuer -dates \
-serial -hash -fingerprint -in /etc/mysql/certs/server-cert.pem
subject= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=Primary
issuer= /C=RU/L=Vladivostok/O=Default Company Ltd/CN=PriSec
notBefore=Jan 4 06:28:25 2013 GMT
notAfter=Nov 13 06:28:25 2022 GMT
serial=01
64626d57
SHA1 Fingerprint=39:9E:7A:9E:60:9A:58:68:81:2F:90:A5:9B:BF:E8:26:C5:9D:3C:AB
ডিরেক্টরি অনুমতি:
মাস্টার অন:
[gahcep@localhost ~]$ ls -la /etc/mysql/certs/
drwx------. 3 mysql mysql 4096 Jan 3 23:49 .
drwx------. 3 mysql mysql 4096 Jan 3 07:34 ..
-rw-rw-r--. 1 gahcep gahcep 1261 Jan 3 22:27 ca-cert.pem
-rw-rw-r--. 1 gahcep gahcep 1675 Jan 3 22:27 ca-key.pem
-rw-rw-r--. 1 gahcep gahcep 1135 Jan 3 22:28 server-cert.pem
-rw-rw-r--. 1 gahcep gahcep 1679 Jan 3 22:28 server-key.pem
-rw-rw-r--. 1 gahcep gahcep 976 Jan 3 22:28 server-req.pem
দাসে:
[gahcep@localhost ~]$ ls -la /etc/mysql/certs/
drwx------. 3 mysql mysql 4096 Jan 3 22:57 .
drwx------. 3 mysql mysql 4096 Jan 3 07:50 ..
-rw-r--r--. 1 root root 1261 Jan 3 22:56 ca-cert.pem
-rw-r--r--. 1 root root 1139 Jan 3 22:57 client-cert.pem
-rw-r--r--. 1 root root 1675 Jan 3 22:57 client-key.pem
কেউ যদি সমাধানটির পরামর্শ দিতে পারে, আমি সত্যিই এটির প্রশংসা করব!