মাইএসকিউএল 5.1.66 এসএসএল সংযোগ ত্রুটি ERROR 2026 (HY000)


37

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

ধাপ পুনর্গঠন কর:

  1. একই সিএ স্বাক্ষরিত উভয় ক্লায়েন্ট এবং সার্ভার শংসাপত্রগুলি সেটআপ / তৈরি করুন
  2. এই থ্রেডে উল্লিখিত ক্লায়েন্ট এবং সার্ভারগুলিতে উভয়ই my.cnf ফাইল সেটআপ করুন
  3. দাসের জন্য মাস্টারের উপর স্লুউসার তৈরি করুন
  4. 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

কেউ যদি সমাধানটির পরামর্শ দিতে পারে, আমি সত্যিই এটির প্রশংসা করব!


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
পল হোয়াইট GoFundMonica বলেছেন

উত্তর:


2

মাইএসকিএল ব্যবহারকারীর মালিকানাধীন শংসাপত্র ফাইলগুলি বানানোর চেষ্টা করুন এবং অন্যেরা পাঠযোগ্য নয়।

আপনি একটি স্থির সাইফার দিয়ে চেষ্টা করতে পারেন:

mysql ... --ssl-cipher=AES128-SHA

এবং পরিবর্তন মাস্টার জন্য:

CHANGE MASTER TO ... MASTER_SSL_CIPHER='AES128-SHA'


1

সম্ভাব্য সমাধান:

মাইএসকিউএল সার্ভার yaSSL বা ওপেনএসএসএল ব্যবহার করে কিনা তা কীভাবে বলা যায় to

এটি উপযুক্ত বিশ্বব্যাপী স্থিতির মানের অভাবের জন্য একাত্মতা প্রদর্শন করে। Rsa_public_keyস্ট্যাটাস ভেরিয়েবলের জন্য যাচাই করার বিষয়টি ধারণাটি :

mysql> show status like '%rsa%';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| Rsa_public_key |       |
+----------------+-------+
1 row in set (0.00 sec)

যদি ওপেনএসএসএল ব্যবহারে থাকে তবে সেই পরিবর্তনশীলটি উপস্থিত থাকবে; অন্যথায় এটি yaSSL।

অন্যান্য সম্ভাবনা:

মাইএসকিউএল এবং এসএসএল সংযোগ 2026 (HY000) ব্যর্থ হয়েছে (স্ট্যাক ওভারফ্লো)


1

আপনি যদি সমস্ত কিছু চেষ্টা করে দেখে থাকেন তবে এসএসএল কাজ করছে না এবং একই সাথে আপনি ক্রুটে মাইএসকিএলডি চালাচ্ছেন, তবে ত্রুটির কারণ যেমন:

ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)

অথবা

ERROR 2026 (HY000): SSL connection error: protocol version mismatch

আপনি ক্রুট পরিবেশে ডেভ / এলোমেলো এবং ডিভ / ইউরানডোম ডিভাইস তৈরি করতে ভুলে গেছেন (এবং ওপেনসেল লাইব এন্ট্রপি অর্জন করতে পারে না - এটি ক্রোটের পরে এই ডিভাইসগুলি খুলবে )। আপনি এটিকে এটি ঠিক করতে পারেন ( /srv/mysqldআপনার mysqldক্রুট ডিরের সাথে প্রতিস্থাপন করুন এবং ব্যবহারকারীর সাথে মাইএসকিএলডি চলছে):

sudo install -d -o mysqld -g mysqld -m 500 /srv/mysqld/dev
sudo mknod -m 444 /srv/mysqld/dev/random c 1 8
sudo mknod -m 444 /srv/mysqld/dev/urandom c 1 9
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.