SQL सर्वर एन्क्रिप्शन त्रुटि ठीक करें - एक क्लिक समाधान
SQL सर्वर कनेक्ट होता है, फिर लॉगिन से इंकार कर देता है क्योंकि यह सर्वर के प्रमाणपत्र पर भरोसा नहीं कर सकता है। यह कोई नेटवर्क समस्या नहीं है और आपका डेटा ख़त्म नहीं हुआ है - यह एक विश्वास समस्या है। वीडियो में दिखाए गए क्रम में सुधारों पर काम करें: त्वरित क्लाइंट-साइड विकल्प, ऐप कनेक्शन स्ट्रिंग के अंदर समान स्विच, और सर्वर पर उचित फिक्स।
📑अध्याय
- लॉगिन त्रुटि - "प्रमाणपत्र श्रृंखला एक ऐसे प्राधिकारी द्वारा जारी की गई थी जो विश्वसनीय नहीं है"
- त्रुटि का वास्तव में क्या मतलब है - एन्क्रिप्शन की मांग की गई है, सर्वर का प्रमाणपत्र इसकी पहचान साबित नहीं कर सकता
- त्वरित क्लाइंट समाधान - SSMS कनेक्ट विंडो में ट्रस्ट सर्वर प्रमाणपत्र
- एप्लिकेशन कनेक्शन स्ट्रिंग के अंदर भी वही फिक्स
- उचित समाधान - सर्वर को एक वास्तविक प्रमाणपत्र दें जिस पर ग्राहक स्वयं भरोसा करते हैं
- समाधान का सत्यापन - सख्त तरीके से पुनः कनेक्ट करें और साबित करें कि एन्क्रिप्शन वास्तव में चालू है
📋 अवलोकन और चरण-दर-चरण मार्गदर्शिका
त्रुटि पढ़ें - यह एक विश्वास समस्या है, नेटवर्क समस्या नहीं
आपका नेटवर्क ठीक है और सर्वर चल रहा है. कनेक्शन SQL सर्वर तक पहुंच गया, सर्वर ने लॉगिन के लिए एक एन्क्रिप्टेड चैनल की पेशकश की, और आपके पीसी ने इसे अस्वीकार कर दिया क्योंकि सर्वर की पहचान साबित करने वाले प्रमाणपत्र पर आपके पीसी पर भरोसा करने वाले किसी भी व्यक्ति द्वारा हस्ताक्षर नहीं किया गया है। SSMS द्वारा प्रदर्शित पूर्ण त्रुटि यह है:
डिफ़ॉल्ट रूप से, SQL सर्वर स्वयं द्वारा बनाए गए स्व-हस्ताक्षरित प्रमाणपत्र के साथ लॉगिन की सुरक्षा करता है। एक स्व-हस्ताक्षरित प्रमाणपत्र ट्रैफ़िक को एन्क्रिप्ट करता है, लेकिन यह साबित नहीं कर सकता कि सर्वर वास्तव में आपका सर्वर है, इसलिए सत्यापित एन्क्रिप्शन की मांग करने वाले ग्राहक इसे अस्वीकार कर देते हैं। प्रत्येक ईमानदार समाधान दो चीजों में से एक है: क्लाइंट को इस विशेष सर्वर को जानबूझकर स्वीकार करना (चरण 2 और 3), या सर्वर को एक प्रमाणपत्र देना जो ग्राहकों को स्वयं पर भरोसा हो (चरण 4)।
एसएसएमएस में त्वरित क्लाइंट फिक्स - ट्रस्ट सर्वर प्रमाणपत्र
यह वीडियो में दिखाया गया तेज़ मार्ग है। यह सर्वर पर कुछ भी नहीं बदलता है; यह इस एक कनेक्शन को सर्वर के प्रमाणपत्र को यह जांचे बिना स्वीकार करने के लिए कहता है कि इस पर किसने हस्ताक्षर किए हैं। SSMS सर्वर से कनेक्ट विंडो में, अतिरिक्त टैब खोलने के लिए विकल्प पर क्लिक करें, कनेक्शन प्रॉपर्टीज टैब पर जाएं, एन्क्रिप्शन को अनिवार्य पर सेट करें (या इसे प्रस्तावित के अनुसार छोड़ दें), ट्रस्ट सर्वर सर्टिफिकेट पर टिक करें, और कनेक्ट पर क्लिक करें। लॉगिन तुरंत हो जाता है।
ऐप कनेक्शन स्ट्रिंग के अंदर समान फिक्स
यदि कोई एप्लिकेशन SSMS के बजाय विफल हो जाता है, तो वही स्विच उसके कनेक्शन स्ट्रिंग में रहता है। दो सेटिंग्स स्पष्ट रूप से जोड़ें - Encrypt=True संरक्षित चैनल को चालू करता है, और TrustServerCertificate=True SSMS चेकबॉक्स की कनेक्शन-स्ट्रिंग वर्तनी है:
Server=SQL01;Database=AppDB;User Id=appuser;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;
उदाहरण मानों के स्थान पर अपने स्वयं के सर्वर नाम, डेटाबेस और लॉगिन का उपयोग करें। ट्रेड-ऑफ बिल्कुल चरण 2 में चेकबॉक्स के समान है, एक अतिरिक्त खतरे के साथ: शिप किए गए एप्लिकेशन के कॉन्फ़िगरेशन में बेक किया गया, छोड़ा गया चेक अदृश्य रूप से और स्थायी रूप से प्रत्येक उपयोगकर्ता पर लागू होता है। इसे विकास और स्टेजिंग कॉन्फ़िगरेशन में रखें, और उत्पादन में इसे उधार के समय के रूप में मानें जब तक कि चरण 4 में सर्वर प्रमाणपत्र लागू न हो जाए।
एन्क्रिप्टकोड> चालू हो गया। जिन कनेक्शन स्ट्रिंग्स ने कभी भी एन्क्रिप्शन का उल्लेख नहीं किया था, उन्होंने उन सर्वरों के विरुद्ध इसकी मांग करना शुरू कर दिया, जिनके स्व-हस्ताक्षरित प्रमाणपत्र सत्यापन पास नहीं कर सकते। आपके डेटाबेस के बारे में कुछ भी नहीं बदला; स्ट्रिंग के अंदर अनुबंध किया गया। सेटिंग्स को स्पष्ट रूप से लिखने का मतलब है कि अगला ड्राइवर अपडेट आपकी पीठ पीछे आपके ऐप के व्यवहार को नहीं बदल सकता है।उचित समाधान - सर्वर को एक वास्तविक प्रमाणपत्र दें
स्थायी मरम्मत सर्वर पर एक बार होती है, और उसके बाद प्रत्येक क्लाइंट बिना किसी चेकबॉक्स और बिना किसी चेतावनी के सख्ती से जुड़ जाता है। सबसे पहले अपने आंतरिक प्रमाणपत्र प्राधिकारी या सार्वजनिक सीए से सर्वर प्रमाणीकरण उपयोग के साथ सर्वर के पूर्ण DNS नाम (उदाहरण के लिए sql01.company.local) के लिए एक प्रमाणपत्र प्राप्त करें। इसे, इसकी निजी कुंजी के साथ, SQL सर्वर मशीन पर स्थानीय कंप्यूटर प्रमाणपत्र स्टोर में आयात करें। फिर प्रमाणपत्र पर राइट-क्लिक करें, सभी कार्य → निजी कुंजी प्रबंधित करें चुनें, और निजी कुंजी पर SQL सर्वर सेवा खाते को पढ़ें अनुमति प्रदान करें। SQL सर्वर कॉन्फ़िगरेशन प्रबंधक खोलें, SQL सर्वर नेटवर्क कॉन्फ़िगरेशन का विस्तार करें, MSSQLSERVER के लिए प्रोटोकॉल पर राइट-क्लिक करें, गुण चुनें, और प्रमाणपत्र टैब पर प्रमाणपत्र का चयन करें। फ़्लैग टैब पर आप ForceEncryption को हाँ पर भी सेट कर सकते हैं, इसलिए प्रत्येक क्लाइंट को एन्क्रिप्ट करना आवश्यक है। SQL सर्वर सेवा को पुनरारंभ करें - परिवर्तन तब तक कुछ नहीं करता जब तक आप ऐसा नहीं करते।
सख्त तरीके से ठीक करें सत्यापित करें
एक लॉगिन जो चुपचाप सफल हो जाता है वह लोगों की सोच से कमतर साबित होता है, क्योंकि कुछ सेटिंग संयोजन वास्तविक सुरक्षा के बिना कनेक्ट होते हैं। दोनों हिस्सों को सिद्ध करें. सबसे पहले, किसी क्लाइंट से सख्त तरीके से पुनः कनेक्ट करें: सर्वर के DNS नाम का उपयोग करके कनेक्ट करें - प्रमाणपत्र के अंदर का नाम - एन्क्रिप्शन को अनिवार्य पर सेट करें और ट्रस्ट सर्वर प्रमाणपत्र को अनचेक छोड़ दें। लॉगिन बिना किसी चेतावनी के सफल होना चाहिए। फिर, उसी सत्र में, सर्वर से पूछें कि क्या एसएसएमएस में इस क्वेरी को चलाकर कनेक्शन वास्तव में एन्क्रिप्ट किया गया है:
SELECT session_id, encrypt_option, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;
encrypt_option दिखा रहा है कि TRUE उत्तीर्ण ग्रेड है। कार्यशील लॉगिन के साथ FALSE का अर्थ है कि सुरक्षा हटाकर कनेक्शन सफल हो गया, और कार्य पूरा नहीं हुआ। वह उत्तीर्ण परीक्षण ही वास्तविक समापन रेखा है: भविष्य के एसएसएमएस संस्करणों सहित कोई भी सही ढंग से कॉन्फ़िगर किया गया क्लाइंट, अब पूर्ण सत्यापन और बिना किसी विशेष सेटिंग्स के साथ जुड़ता है।
🏷️विषय खोज चर और कीवर्ड
🎙️ पूर्ण प्रतिलेख - विस्तार करने के लिए टैप करें
__TOK_24__
__TOK_25__
__TOK_26__
❓अक्सर पूछे जाने वाले प्रश्न
क्या यह ट्यूटोरियल अनुसरण करने के लिए 100% निःशुल्क है?
__TOK_27__
क्या शुरुआती लोग इस गाइड का पालन कर सकते हैं?
__TOK_28__
यदि मैं फंस जाऊं तो मैं प्रश्न कहां पूछ सकता हूं?
__TOK_29__