Technical Anshu ہوم › ٹیوٹوریلز › SQL سرور کی خفیہ کاری کی خرابی۔
🔐 ایس کیو ایل سرور فکس

ایس کیو ایل سرور انکرپشن کی خرابی کو درست کریں - ایک کلک حل

SQL سرور جوڑتا ہے، پھر لاگ ان سے انکار کر دیتا ہے کیونکہ یہ سرور کے سرٹیفکیٹ پر بھروسہ نہیں کر سکتا۔ یہ نیٹ ورک کا مسئلہ نہیں ہے اور آپ کا ڈیٹا ختم نہیں ہوا ہے - یہ اعتماد کا مسئلہ ہے۔ اصلاحات کے ذریعے اس ترتیب سے کام کریں جس ترتیب سے ویڈیو انہیں دکھاتا ہے: فوری کلائنٹ سائیڈ آپشن، ایپ کنکشن سٹرنگ کے اندر وہی سوئچ، اور سرور پر ہی درست درستگی۔

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
ایس کیو ایل سرور انکرپشن کی خرابی کو درست کریں - ایک کلک حل
🎧 کثیر لسانی آڈیو: ویڈیو پلیئر میں [ترتیبات] (⚙️) ➔ [آڈیو ٹریک] پر کلک کر کے زبان منتخب کریں۔

📑باب

  1. لاگ ان کی خرابی - "سرٹیفکیٹ چین ایک اتھارٹی کی طرف سے جاری کیا گیا تھا جو قابل اعتبار نہیں ہے"
  2. خرابی کا اصل مطلب کیا ہے - خفیہ کاری کا مطالبہ کیا جاتا ہے، سرور کا سرٹیفکیٹ اس کی شناخت ثابت نہیں کرسکتا
  3. کلائنٹ کا فوری حل - SSMS کنیکٹ ونڈو میں سرور سرٹیفکیٹ پر اعتماد کریں
  4. ایک ایپلیکیشن کنکشن سٹرنگ کے اندر ایک ہی فکس
  5. مناسب حل - سرور کو ایک حقیقی سرٹیفکیٹ دیں جو کلائنٹ خود اعتماد کریں
  6. تصدیق کی تصدیق کرنا - سخت طریقے سے دوبارہ جڑیں اور ثابت کریں کہ خفیہ کاری واقعی آن ہے

📋 جائزہ اور مرحلہ وار گائیڈ

1

غلطی پڑھیں - یہ ایک ٹرسٹ کا مسئلہ ہے، نیٹ ورک کا مسئلہ نہیں۔

آپ کا نیٹ ورک ٹھیک ہے اور سرور چل رہا ہے۔ کنکشن ایس کیو ایل سرور تک پہنچ گیا، سرور نے لاگ ان کے لیے ایک انکرپٹڈ چینل کی پیشکش کی، اور آپ کے پی سی نے اس سے انکار کر دیا کیونکہ سرور کی شناخت ثابت کرنے والے سرٹیفکیٹ پر آپ کے پی سی پر بھروسہ کرنے والے کسی کے دستخط نہیں ہیں۔ مکمل غلطی SSMS ظاہر کرتی ہے:

📌 خرابی، بالکل اسی طرح جیسے SSMS اسے دکھاتا ہے: "سرور کے ساتھ ایک کنکشن کامیابی کے ساتھ قائم ہو گیا تھا، لیکن پھر لاگ ان کے عمل کے دوران ایک خرابی پیش آگئی۔

پہلے سے طے شدہ طور پر، ایس کیو ایل سرور لاگ ان کی حفاظت خود دستخط شدہ سرٹیفکیٹ کے ساتھ کرتا ہے جو خود تخلیق کرتا ہے۔ خود دستخط شدہ سرٹیفکیٹ ٹریفک کو خفیہ کرتا ہے، لیکن یہ ثابت نہیں کر سکتا کہ سرور واقعی آپ کا سرور ہے، اس لیے جو کلائنٹ تصدیق شدہ انکرپشن کا مطالبہ کرتے ہیں وہ اسے مسترد کر دیتے ہیں۔ ہر ایماندار حل دو چیزوں میں سے ایک ہے: کلائنٹ کو اس مخصوص سرور کو جان بوجھ کر قبول کرنے پر مجبور کریں (مرحلہ 2 اور 3)، یا سرور کو ایک سرٹیفکیٹ دیں جو کلائنٹ کا خود اعتماد ہے (مرحلہ 4)۔

2

SSMS میں کوئیک کلائنٹ فکس - ٹرسٹ سرور سرٹیفکیٹ

یہ ویڈیو میں دکھایا گیا تیز رفتار راستہ ہے۔ یہ سرور پر کچھ نہیں بدلتا ہے۔ یہ اس ایک کنکشن کو بتاتا ہے کہ سرور کے سرٹیفکیٹ کو یہ چیک کیے بغیر کہ اس پر کس نے دستخط کیے ہیں۔ SSMS سرور سے جڑیں ونڈو میں، اضافی ٹیبز کو کھولنے کے لیے اختیارات پر کلک کریں، کنکشن پراپرٹیز ٹیب پر جائیں، انکرپشن کو لازمی پر سیٹ کریں (یا اسے پیش کردہ کے طور پر چھوڑ دیں)، ٹرسٹ سرور سرٹیفکیٹ پر نشان لگائیں، اور کنیکٹ پر کلک کریں۔ لاگ ان فوراً ہو جاتا ہے۔

⚠️ جانیں کہ چیک باکس کیا سوئچ کرتا ہے: ٹریفک خفیہ رہتا ہے، لیکن شناخت کی جانچ کو چھوڑ دیا جاتا ہے - کلائنٹ درمیان میں رکھے ہوئے جعلی سرور کو بھی قبول کرے گا۔ آپ کے اپنے دفتر کے LAN پر، آپ کے کنٹرول والے سرور کے لیے، یہ روزانہ قبول شدہ کام ہے، اور ترقی اور ٹیسٹ مشینوں میں یہ ایک منصفانہ تجارت ہے۔ انٹرنیٹ پر، یا کسٹمر ڈیٹا رکھنے والے پروڈکشن سرور پر، اسے صرف ایک عارضی پل سمجھیں اور مرحلہ 4 کے ساتھ کام ختم کریں۔ یہ ایک پل ہے، منزل نہیں۔
3

ایپ کنکشن سٹرنگ کے اندر وہی فکس

اگر SSMS کے بجائے کوئی ایپلیکیشن ناکام ہو جاتی ہے تو وہی سوئچ اس کے کنکشن سٹرنگ میں رہتا ہے۔ واضح طور پر دو سیٹنگیں شامل کریں - Encrypt=True محفوظ چینل کو آن کرتا ہے، اور TrustServerCertificate=True SSMS چیک باکس کا کنکشن سٹرنگ اسپیلنگ ہے:

Connection String
Server=SQL01;Database=AppDB;User Id=appuser;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;

مثال کی اقدار کی جگہ اپنا سرور کا نام، ڈیٹا بیس اور لاگ ان استعمال کریں۔ ٹریڈ آف بالکل ویسا ہی ہے جیسا کہ مرحلہ 2 میں چیک باکس ہے، ایک اضافی خطرہ کے ساتھ: بھیجے گئے ایپلیکیشن کی کنفیگریشن میں بیک کیا گیا، چھوڑ دیا گیا چیک ہر صارف پر، پوشیدہ اور مستقل طور پر لاگو ہوتا ہے۔ اسے ڈویلپمنٹ اور سٹیجنگ کنفیگریشنز میں رکھیں، اور پروڈکشن میں اسے مستعار وقت کے طور پر سمجھیں جب تک کہ مرحلہ 4 میں سرور سرٹیفکیٹ موجود نہ ہو۔

📌 ایپس کو دوبارہ بنائے بغیر کیوں ٹوٹ گیا: حالیہ ڈرائیورز نے اپنے ڈیفالٹس تبدیل کیے - Microsoft.Data.SqlClient 5.1 اور جدید تر، اور ODBC ڈرائیور 18، کو Encrypt کو بطور ڈیفالٹ آن کر دیا گیا۔ کنکشن سٹرنگز جنہوں نے کبھی بھی خفیہ کاری کا تذکرہ نہیں کیا، اس کا مطالبہ کرنا شروع کر دیا، ان سرورز کے خلاف جن کے خود دستخط شدہ سرٹیفکیٹ توثیق کو پاس نہیں کر سکتے۔ آپ کے ڈیٹا بیس کے بارے میں کچھ بھی نہیں بدلا۔ سٹرنگ کے اندر معاہدہ کیا. سیٹنگز کو واضح طور پر لکھنے کا مطلب ہے کہ اگلی ڈرائیور اپ ڈیٹ آپ کی پیٹھ کے پیچھے آپ کی ایپ کے رویے کو تبدیل نہیں کر سکتی۔
4

مناسب حل - سرور کو ایک حقیقی سرٹیفکیٹ دیں۔

مستقل مرمت ایک بار سرور پر ہوتی ہے، اور اس کے بعد ہر کلائنٹ بغیر کسی چیک باکس اور بغیر کسی وارننگ کے سختی سے جڑ جاتا ہے۔ پہلے سرور کے پورے DNS نام کے لیے ایک سرٹیفکیٹ حاصل کریں (مثال کے طور پر sql01.company.local) اپنے اندرونی سرٹیفکیٹ اتھارٹی یا عوامی CA سے، سرور کی تصدیق کے استعمال کے ساتھ۔ اسے، اس کی نجی کلید کے ساتھ، SQL سرور مشین پر لوکل کمپیوٹر سرٹیفکیٹ اسٹور میں درآمد کریں۔ پھر سرٹیفکیٹ پر دائیں کلک کریں، تمام کام → نجی کلیدوں کا نظم کریں کا انتخاب کریں، اور SQL سرور سروس اکاؤنٹ کو نجی کلید پر پڑھیں کی اجازت دیں۔ کھولیں۔ جھنڈے ٹیب پر آپ ForceEncryption کو Yes پر بھی سیٹ کرسکتے ہیں لہذا ہر کلائنٹ کو انکرپٹ کرنا ضروری ہے۔ ایس کیو ایل سرور سروس کو دوبارہ شروع کریں - تبدیلی اس وقت تک کچھ نہیں کرتی جب تک آپ ایسا نہ کریں۔

✅ دو ٹریپس جو تقریباً ہر "اس نے کام نہیں کیا" کا سبب بنتے ہیں: ایک سرٹیفکیٹ جس کا نام کلائنٹس کے کنیکٹ ہونے والے نام سے مماثل نہیں ہے (سرور کے DNS نام سے جڑیں، اس کے IP ایڈریس سے نہیں)، اور ایک سروس اکاؤنٹ جو نجی کلید کو نہیں پڑھ سکتا۔ دوبارہ شروع کرنے کے بعد، ایس کیو ایل سرور ایرر لاگ کو یہ ریکارڈ کرنا چاہیے کہ سرٹیفکیٹ کو کامیابی کے ساتھ خفیہ کاری کے لیے لوڈ کیا گیا تھا - اگر اس کی بجائے شکایت ہوتی ہے، تو نجی کلید کی اجازت سب سے پہلے دیکھنے کی جگہ ہے۔
⚠️ فورس اینکرپشن کے بارے میں: اسے سرور پر ہاں پر سیٹ کرنا ہر کنکشن کے لیے انکرپشن کو مجبور کرتا ہے - جو کہ صرف ایک بار بھروسہ مند سرٹیفکیٹ انسٹال ہونے کے بعد درست آخری حالت ہے۔ اسے مجبور کرنا جب کہ سرور اب بھی اپنا خود دستخط شدہ سرٹیفکیٹ رکھتا ہے، ہر سخت کلائنٹ کو اسی غلطی کے ساتھ، ایک ساتھ ہی ناکام بنا دیتا ہے۔
5

درست طریقہ کی تصدیق کریں۔

خاموشی سے کامیاب ہونے والا لاگ ان لوگوں کے خیال سے کم ثابت ہوتا ہے، کیونکہ کچھ سیٹنگ کے امتزاج حقیقی تحفظ کے بغیر جڑ جاتے ہیں۔ دونوں حصوں کو ثابت کریں۔ سب سے پہلے، کسی کلائنٹ سے سخت طریقے سے دوبارہ جڑیں: سرور کے DNS نام کا استعمال کرتے ہوئے جڑیں - سرٹیفکیٹ کے اندر کا نام - خفیہ کاری کو لازمی پر سیٹ کریں اور ٹرسٹ سرور سرٹیفکیٹ کو بغیر نشان کے چھوڑ دیں۔ لاگ ان بغیر کسی وارننگ کے کامیاب ہونا چاہیے۔ پھر، اسی سیشن میں، سرور سے پوچھیں کہ کیا SSMS میں اس استفسار کو چلا کر کنکشن درحقیقت انکرپٹ ہوا ہے:

SQL Query
SELECT session_id, encrypt_option, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;

encrypt_option دکھانا TRUE پاسنگ گریڈ ہے۔ ورکنگ لاگ ان کے ساتھ FALSE کا مطلب ہے کہ تحفظ کو چھوڑ کر کنکشن کامیاب ہو گیا، اور کام نہیں ہوا۔ وہ پاسنگ ٹیسٹ ہی اصل فنش لائن ہے: کوئی بھی صحیح طریقے سے تشکیل شدہ کلائنٹ، بشمول مستقبل کے SSMS ورژن، اب مکمل توثیق کے ساتھ جڑتا ہے اور کوئی خاص سیٹنگ نہیں ہے۔

🏷️موضوع کی تلاش کے متغیرات اور مطلوبہ الفاظ

🔍 SQLServer 🔍 CertificateNotTrusted 🔍 TrustServerCertificate 🔍 SSMS 🔍 ForceEncryption 🔍 TechnicalAnshu 🔍 SQL Server Encryption Error 🔍 Certificate Chain Not Trusted 🔍 Encrypt Connection 🔍 Connection String Fix 🔍 SQL Server Configuration Manager 🔍 SSL Provider Error
🎙️ مکمل ٹرانسکرپٹ — پھیلانے کے لیے تھپتھپائیں۔

__TOK_24__

__TOK_25__

__TOK_26__

❓ اکثر پوچھے جانے والے سوالات

کیا یہ ٹیوٹوریل پیروی کرنے کے لیے 100% مفت ہے؟

__TOK_27__

کیا مبتدی اس گائیڈ پر عمل کر سکتے ہیں؟

__TOK_28__

اگر میں پھنس گیا ہوں تو میں کہاں سوال پوچھ سکتا ہوں؟

__TOK_29__

🚀 YouTube پر مکمل ٹیوٹوریل دیکھیں

__TOK_30__

__TOK_31__

▶️ مکمل ویڈیو دیکھیں
یہ ٹیوٹوریل ٹیکنیکل انشو کی فکس ایس کیو ایل سرور انکرپشن ایرر ویڈیو پر مبنی ہے • کسی بھی قدم پر پھنس گیا ہے؟ ویڈیو کے تبصروں میں پوچھیں — آپ کو وہاں مدد ملے گی۔