إصلاح خطأ تشفير خادم SQL - الحل بنقرة واحدة
يتصل SQL Server، ثم يرفض تسجيل الدخول لأنه لا يمكنه الوثوق بشهادة الخادم. هذه ليست مشكلة في الشبكة ولم تختفي بياناتك - إنها مشكلة ثقة. اعمل على الإصلاحات بالترتيب الذي يعرضه الفيديو: الخيار السريع من جانب العميل، ونفس المفتاح داخل سلسلة اتصال التطبيق، والإصلاح المناسب على الخادم نفسه.
📑الفصول
- خطأ في تسجيل الدخول - "تم إصدار سلسلة الشهادات من قبل سلطة غير موثوق بها"
- ما يعنيه الخطأ حقًا - التشفير مطلوب، ولا يمكن لشهادة الخادم إثبات هويته
- الإصلاح السريع للعميل - الثقة بشهادة الخادم في نافذة اتصال SSMS
- نفس الإصلاح داخل سلسلة اتصال التطبيق
- الحل المناسب - منح الخادم شهادة حقيقية يثق بها العملاء بأنفسهم
- التحقق من الإصلاح - أعد الاتصال بالطريقة الصارمة وأثبت أن التشفير قيد التشغيل بالفعل
📋 نظرة عامة ودليل خطوة بخطوة
اقرأ الخطأ - إنها مشكلة ثقة وليست مشكلة في الشبكة
شبكتك جيدة والخادم قيد التشغيل. وصل الاتصال إلى SQL Server، وعرض الخادم قناة مشفرة لتسجيل الدخول، ورفض جهاز الكمبيوتر الخاص بك ذلك لأن الشهادة التي تثبت هوية الخادم لم يتم توقيعها من قبل أي شخص يثق به جهاز الكمبيوتر الخاص بك. الخطأ الكامل الذي يظهره SSMS هو:
افتراضيًا، يحمي SQL Server تسجيل الدخول بشهادة موقعة ذاتيًا يقوم بإنشائها بنفسه. تقوم الشهادة الموقعة ذاتيًا بتشفير حركة المرور، لكنها لا تستطيع إثبات أن الخادم هو خادمك بالفعل، لذلك يرفضها العملاء الذين يطلبون تشفيرًا تم التحقق منه. كل إصلاح صادق هو أحد أمرين: جعل العميل يقبل هذا الخادم المحدد عن علم (الخطوتان 2 و3)، أو منح الخادم شهادة يثق بها العملاء بمفردهم (الخطوة 4).
الإصلاح السريع للعميل في SSMS - شهادة خادم الثقة
وهذا هو الطريق السريع الموضح في الفيديو. لا يغير شيئا على الخادم. فهو يخبر هذا الاتصال بقبول شهادة الخادم دون التحقق من الشخص الذي قام بالتوقيع عليها. في نافذة SSMS الاتصال بالخادم، انقر فوق خيارات لفتح علامات التبويب الإضافية، وانتقل إلى علامة التبويب خصائص الاتصال، واضبط التشفير على إلزامي (أو اتركه كما هو معروض)، وحدد شهادة الخادم الموثوقة، ثم انقر فوق اتصال. يتم تسجيل الدخول على الفور.
نفس الإصلاح داخل سلسلة اتصال التطبيق
إذا فشل أحد التطبيقات بدلاً من SSMS، فسيظل نفس المفتاح موجودًا في سلسلة الاتصال الخاصة به. قم بإضافة الإعدادين بشكل صريح - Encrypt=True يقوم بتشغيل القناة المحمية، وTrustServerCertificate=True هو تهجئة سلسلة الاتصال لمربع اختيار SSMS:
Server=SQL01;Database=AppDB;User Id=appuser;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;
استخدم اسم الخادم الخاص بك وقاعدة البيانات وتسجيل الدخول بدلاً من قيم الأمثلة. المقايضة هي نفسها تمامًا كما في مربع الاختيار في الخطوة 2، مع وجود خطر إضافي واحد: في تكوين التطبيق الذي تم شحنه، ينطبق الاختيار الذي تم تخطيه على كل مستخدم، بشكل غير مرئي ودائم. احتفظ به في عمليات التطوير والتكوين المرحلي، وفي الإنتاج تعامل معه على أنه وقت مستعار حتى يتم وضع شهادة الخادم في الخطوة 4.
Encrypt افتراضيًا. بدأت سلاسل الاتصال التي لم تذكر التشفير مطلقًا في المطالبة به، ضد الخوادم التي لا تستطيع شهاداتها الموقعة ذاتيًا اجتياز التحقق من الصحة. لم يتغير شيء في قاعدة البيانات الخاصة بك؛ العقد داخل السلسلة فعل. إن كتابة الإعدادات بشكل صريح يعني أن تحديث برنامج التشغيل التالي لا يمكنه تغيير سلوك تطبيقك خلف ظهرك.الإصلاح المناسب - امنح الخادم شهادة حقيقية
يتم الإصلاح الدائم مرة واحدة، على الخادم، وبعد ذلك يتصل كل عميل بشكل صارم بدون مربع اختيار أو تحذير. احصل أولاً على شهادة لاسم DNS الكامل للخادم (على سبيل المثال sql01.company.local) من مرجع التصديق الداخلي لديك أو مرجع مصدق عام، مع استخدام مصادقة الخادم. قم باستيراده باستخدام مفتاحه الخاص إلى مخزن شهادات الكمبيوتر المحلي الموجود على جهاز SQL Server. بعد ذلك، انقر بزر الماوس الأيمن على الشهادة، واختر جميع المهام ← إدارة المفاتيح الخاصة، وامنح حساب خدمة SQL Server إذن القراءة على المفتاح الخاص. افتح SQL Server Configuration Manager، وقم بتوسيع SQL Server Network Configuration، وانقر بزر الماوس الأيمن فوق بروتوكولات MSSQLSERVER، واختر خصائص، وحدد الشهادة في علامة التبويب الشهادة. في علامة التبويب الإشارات يمكنك أيضًا تعيين ForceEncryption على نعم بحيث يُطلب من كل عميل التشفير. أعد تشغيل خدمة SQL Server - لن يؤدي التغيير إلى أي شيء حتى تقوم بذلك.
تحقق من الإصلاح بالطريقة الصارمة
إن تسجيل الدخول الذي ينجح بهدوء يثبت أنه أقل مما يعتقده الناس، لأن بعض مجموعات الإعدادات تتصل دون حماية حقيقية. إثبات كلا النصفين. أولاً، أعد الاتصال من العميل بالطريقة الصارمة: اتصل باستخدام اسم DNS الخاص بالخادم - الاسم الموجود داخل الشهادة - واضبط التشفير على إلزامي واترك شهادة الخادم الموثوقة بدون تحديد. يجب أن ينجح تسجيل الدخول دون أي تحذير. بعد ذلك، في نفس الجلسة، اسأل الخادم عما إذا كان الاتصال مشفرًا بالفعل عن طريق تشغيل هذا الاستعلام في SSMS:
SELECT session_id, encrypt_option, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;
encrypt_option يظهر أن TRUE هي درجة النجاح. "خطأ" مع تسجيل دخول فعال يعني أن الاتصال نجح بإسقاط الحماية، ولم تتم المهمة. اختبار النجاح هذا هو خط النهاية الحقيقي: أي عميل تم تكوينه بشكل صحيح، بما في ذلك إصدارات SSMS المستقبلية، يتصل الآن بالتحقق الكامل وبدون إعدادات خاصة.
🏷️متغيرات البحث والكلمات الرئيسية للموضوع
🎙️ نص كامل - انقر للتوسيع
__TOK_24__
__TOK_25__
__TOK_26__
❓ الأسئلة المتداولة
هل هذا البرنامج التعليمي مجاني للمتابعة بنسبة 100%؟
__TOK_27__
هل يمكن للمبتدئين اتباع هذا الدليل؟
__TOK_28__
أين يمكنني طرح الأسئلة إذا واجهت مشكلة؟
__TOK_29__