এসএসএলের জন্য মাইএসকিউএল কনফিগার করা হয়েছে, তবে এসএসএল এখনও অক্ষম ..!


9

আমি নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করে মাইএসকিউএল এর জন্য এসএসএল কনফিগার করেছি।

#!/bin/bash
#
mkdir -p /root/abc/ssl_certs
cd /root/abc/ssl_certs
#
echo "--> 1. Create CA cert, private key"
openssl genrsa 2048 > ca-key.pem

echo "--> 2. Create CA cert, certificate"
openssl req -new -x509 -nodes -days 1000 -key ca-key.pem > ca-cert.pem

echo "--> 3. Create Server certificate, key"
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem > server-req.pem

echo "--> 4. Create Server certificate, cert"
openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
echo ""
echo 
echo ""

echo "--> 5. Create client certificate, key. Use DIFFERENT common name then server!!!!"
echo ""
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem > client-req.pem
echo "6. Create client certificate, cert"
openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > client-cert.pem
exit 0

নিম্নলিখিত ফাইল তৈরি করা হয়েছিল:

ca-key.pem             ca-cert.pem
server-req.pem         server-key.pem       server-cert.pem
client-req.pem         client-key.pem       client-cert.pem

তারপরে আমি সার্ভার- cert.pem এবং ক্লায়েন্ট- cert.pem কে ca.pem এ একত্রিত করেছি (এটি করার জন্য আমি একটি পোস্টে পড়েছি ..)

আমি মাইএসকিউএলে এসএসএল ব্যবহারকারী তৈরি করেছি:

GRANT ALL ON  *.* to sslsuer@hostname IDENTIFIED BY 'pwd' REQUIRE SSL;

পরবর্তী আমি নিম্নলিখিতটি আমার মাই সিএনএফ-এ যুক্ত করেছি

[mysqld]
ssl-ca          = /root/abc/ssl_certs/ca.pem
ssl-cert        = /root/abc/ssl_certs/server-cert.pem
ssl-key         = /root/abc/ssl_certs/server-key.pem

সার্ভারটি পুনরায় চালু করার পরে, আমি মাইএসকিএল-তে সংযুক্ত হয়েছি কিন্তু এসএসএল এখনও ব্যবহৃত হয়নি :(

mysql -u ssluser -p

SSL:                    Not in use

এমনকি have_ssl প্যারামিটারটি এখনও অক্ষম দেখানো ছিল .. :(

mysql> show variables like '%ssl%';
+---------------+---------------------------------------------+
| Variable_name | Value                                       |
+---------------+---------------------------------------------+
| have_openssl  | DISABLED                                    |
| have_ssl      | DISABLED                                    |
| ssl_ca        | /root/abc/ssl_certs/ca.pem          |
| ssl_capath    |                                             |
| ssl_cert      | /root/abc/ssl_certs/server-cert.pem |
| ssl_cipher    |                                             |
| ssl_key       | /root/abc/ssl_certs/server-key.pem  |
+---------------+---------------------------------------------+

আমি কি কোন পদক্ষেপ মিস করেছি, বা কী ভুল ..

বিশদে মিস করা পদক্ষেপের উত্তরগুলি খুব প্রশংসা করা হবে ..


আপনি ওপেনএসএসএলের কোন সংস্করণ ব্যবহার করছেন? এবং দয়া করে মাইএসকিউএলে ত্রুটি + সতর্কতা লগিং সক্ষম করুন। আপনি যদি "ব্যক্তিগত কীটি পড়তে অক্ষম" ত্রুটি বার্তাটি দেখেন তবে সম্ভবত আপনি সম্ভবত কোনওভাবে এই বাগটি দ্বারা আঘাত পেয়েছেন । পুরানো সিস্টেমে নতুন কী + সার্টিফিকেট তৈরি করা, সাম্প্রতিক মাইএসকিউএল এ সেগুলি ব্যবহার করা আমার জন্য সমস্যাটি সমাধান করেছে।
gertvdijk

@gertvdijk আমি ওপেনসেল -১.০.১ সি ব্যবহার করেছি। আমি উল্লিখিত ত্রুটির জন্য লগগুলি চেক করছি।
সানরাইজ

সবার আগে। Mysql এসএসএল সমর্থন করে কিনা তা পরীক্ষা করে দেখুন। mysql --ssl --help
মাই সিএনএফ-

1
@ val0x00ff হ্যাঁ MySQL এসএসএল সমর্থন করে যদি have_ssl মান অক্ষম থাকে।
সানরাইজ

mysql --ssl -u ssluser -pক্লায়েন্টের উপর এসএসএলকে জোর করার চেষ্টা করুন। কাজ করার পরে কেউ পুনরায় জিজ্ঞাসিত এসএসএল কেন না তা সনাক্ত করতে পারে।
জোহানেস

উত্তর:



3

এটি যাচাই করে দেখুন:

  • মাইএসকিউএলের সতর্কতা আউটপুট লগিং সক্ষম করুন এবং সেই প্রকৃত লগ এন্ট্রিগুলি পড়ুন।
  • ব্যবহারকারীকে মাইএসকিউএল চালায় ( mysql?) ফাইলগুলি পড়তে দিতে ফাইল সিস্টেমের অনুমতি পরীক্ষা করুন । ইন /rootআমি মনে করি না এটি ডিফল্ট দ্বারা হয়েছে না।
  • অ্যাপ্পর্মার বা সেলইনাক্স মাইএসকিউএলকে শংসাপত্রগুলি এবং কীগুলি পড়তে বাধা দিচ্ছে?
  • আপনি সাম্প্রতিক ওপেনএসএসএল বনাম মাইএসকিউএল অসঙ্গতিগুলির একটি বাজে বাগ দ্বারা আঘাত পেতে পারেন। আমি উবুন্টু 12.04-এ কীগুলি উত্পন্ন করতে অক্ষম হয়েছি যা মাইএসকিউএল পড়তে পারে, আমি ডেবিয়ান স্কুইজে যেগুলি উত্পন্ন করি তা ঠিকঠাক কাজ করে।

2

উবুন্টুতে, আপনি পরীক্ষা করতে পারেন apparmorযে আপনার সার্টিফিকেট ফাইলগুলিতে অ্যাক্সেস ব্লক করে, ম্যানুয়ালটি দেখুন

তারপরে আপনার ফাইলের অনুমতি / মালিকানা যাচাই করা উচিত এবং এতে প্রয়োজনীয় অধিকার যুক্ত করা উচিত /etc/apparmor.d/usr.sbin.mysqld। এই থ্রেড দেখুন ।


2

আমার এই সমস্যাটি ছিল এবং এটি .pem ফাইলগুলিতে মালিকানা পরিবর্তন করতে সহায়তা করেছিল:

chown mysql.mysql /var/lib/mysql/*.pem  (or in your case /root/abc/ssl_certs/*.pem)

(ক্রেগ রাইট থেকে - https://askubuntu.com / প্রশ্নগুলি / 194074/enabling-ssl-in- mysql )


এটি আমার জন্য সমস্যাটি সমাধান করেছে।
অ্যান্টিয়েটার

0

ফাইলটিতে [mysqld]বিভাগে "এসএসএল" যুক্ত my.cnfকরুন

ssl
ssl-ca          = /root/abc/ssl_certs/ca.pem
ssl-cert        = /root/abc/ssl_certs/server-cert.pem
ssl-key         = /root/abc/ssl_certs/server-key.pem

এবং তারপরে mysql পুনরায় আরম্ভ করুন এবং আবার চেক করুন। এটা কাজ করবে।


0

আমি বিশ্বাস করি যে এই সমস্যাটি আপনার সিএ সার্টিফিকেট, সার্ভার কী এবং সার্ভারের শংসাপত্রের জন্য সঠিকভাবে ফাইল পাথ নির্দিষ্ট করে দেয়নি। এটি অবশ্যই নিম্নলিখিত ফর্ম্যাটে থাকতে হবে ...

ssl-ca=path/to/repo/mysql-directory/path/to/pem/cacert.pem
ssl-cert=path/to/repo/mysql-directory/path/to/pem/server-cert.pem
ssl-key=path/to/repo/mysql-directory/path/to/pem/server-key.pem

অর্থাত্ আপনার মাইএসকিএল ইনস্টলেশন ফোল্ডারের মধ্যে থাকা '/ রুট /' পাথ নয়, আপনার শংসাপত্র এবং কীগুলির পূর্ণ ফাইল পাঠ প্রয়োজন AT

আমার ইনস্টলেশন থেকে একটি উদাহরণ এখানে দেওয়া হয়েছে:

mysql> show variables like '%ssl%';
+---------------+----------------------------------------------------------+
| Variable_name | Value                                                    |
+---------------+----------------------------------------------------------+
| have_openssl  | YES                                                      |
| have_ssl      | YES                                                      |
| ssl_ca        | C:/wamp64/bin/mysql/mysql5.7.14/etc/certs/ca.pem         |
| ssl_capath    |                                                          |
| ssl_cert      | C:/wamp64/bin/mysql/mysql5.7.14/etc/certs/server-cert.pem|
| ssl_cipher    |                                                          |
| ssl_key       | C:/wamp64/bin/mysql/mysql5.7.14/etc/certs/server-key.pem |
+---------------+----------------------------------------------------------+

অতিরিক্ত তথ্যের জন্য নীচের লিঙ্কটি দেখুন। https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html


তার পথগুলি একটি দিয়ে শুরু হয় /, যার অর্থ সেগুলি সম্পূর্ণ পথ, আপেক্ষিক পথ নয়। /root/ইউনিক্স সিস্টেমে মূল ব্যবহারকারীর জন্য হোম ফোল্ডার।
ববপল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.