Technical Anshu Головна › Навчальні посібники › Помилка шифрування SQL Server
🔐 Виправлення SQL Server

Виправити помилку шифрування SQL Server – рішення одним клацанням миші

SQL Server підключається, а потім відмовляється входити, оскільки не може довіряти сертифікату сервера. Це не проблема мережі, і ваші дані не зникли – це проблема довіри. Опрацюйте виправлення в тому порядку, у якому їх показано у відео: швидкий варіант на стороні клієнта, той самий перемикач у рядку з’єднання програми та належне виправлення на самому сервері.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Виправити помилку шифрування SQL Server – рішення одним клацанням миші
🎧 Багатомовне аудіо: У відеоплеєрі натисніть [Налаштування] (⚙️) ➔ [Аудіодоріжка], щоб вибрати мову.

📑Розділи

  1. Помилка входу - "Ланцюжок сертифікатів видано органом, якому не можна довіряти"
  2. Що насправді означає помилка - потрібне шифрування, сертифікат сервера не може підтвердити його ідентичність
  3. Швидке вирішення проблеми клієнта – сертифікат довіреного сервера у вікні підключення SSMS
  4. Те саме виправлення всередині рядка підключення програми
  5. Правильне виправлення - надайте серверу справжній сертифікат, якому клієнти довіряють самостійно
  6. Перевірка виправлення – повторно підключіться суворим способом і підтвердьте, що шифрування дійсно ввімкнено

📋 Огляд і покроковий посібник

1

Прочитайте помилку - це проблема довіри, а не проблема мережі

Ваша мережа в порядку, і сервер працює. З’єднання досягло SQL Server, сервер запропонував зашифрований канал для входу, але ваш комп’ютер відмовився, оскільки сертифікат, що підтверджує особу сервера, підписаний ніким, кому ваш комп’ютер довіряє. Повна помилка SSMS показує:

📌 Помилка, саме так, як її показує SSMS: «Було успішно встановлено з’єднання із сервером, але потім сталася помилка під час процесу входу. (Постачальник: Постачальник SSL, помилка: 0 — Ланцюжок сертифікатів було видано органом, якому не можна довіряти.)»

За замовчуванням SQL Server захищає вхід за допомогою самопідписаного сертифіката, який створює сам. Самопідписаний сертифікат дійсно шифрує трафік, але він не може підтвердити, що сервер дійсно є вашим сервером, тому клієнти, які вимагають перевіреного шифрування, відхиляють його. Кожне чесне виправлення — це одне з двох: змусити клієнта свідомо прийняти цей конкретний сервер (кроки 2 і 3) або надати серверу сертифікат, якому клієнти довіряють самостійно (крок 4).

2

Швидке виправлення клієнта в SSMS - Сертифікат довіреного сервера

Це швидкий маршрут, показаний на відео. Це нічого не змінює на сервері; він повідомляє цьому одному підключенню прийняти сертифікат сервера, не перевіряючи, хто його підписав. У вікні Підключення до сервера SSMS клацніть Параметри, щоб відкрити додаткові вкладки, перейдіть на вкладку Властивості з’єднання, встановіть для шифрування значення Обов’язкове (або залиште запропоноване), позначте Сертифікат довіреного сервера та натисніть Під’єднатися. Вхід відбувається одразу.

⚠️ Знайте, що прапорець вимикає: трафік залишається зашифрованим, але перевірка ідентифікаційної інформації пропускається – клієнт також прийме фальшивий сервер, розміщений між ними. У вашій власній офісній локальній мережі, для сервера, яким ви керуєте, це прийнятий повсякденний обхідний шлях, а на машинах для розробки та тестування це чесна торгівля. Через Інтернет або на робочому сервері, на якому зберігаються дані клієнтів, розглядайте його лише як тимчасовий міст і завершіть роботу на кроці 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 увімкнули Шифрувати за замовчуванням. Рядки підключення, у яких ніколи не згадувалося шифрування, почали вимагати його від серверів, чиї самопідписані сертифікати не можуть пройти перевірку. Нічого у вашій базі даних не змінено; договір всередині рядка зробив. Явне написання налаштувань означає, що наступне оновлення драйвера не може змінити поведінку програми за вашою спиною.
4

Правильне виправлення - надайте серверу справжній сертифікат

Постійне відновлення відбувається один раз на сервері, а потім кожен клієнт підключається строго без прапорців і попереджень. Спочатку отримайте сертифікат для повного імені DNS сервера (наприклад, sql01.company.local) від вашого внутрішнього центру сертифікації або загальнодоступного центру сертифікації з використанням автентифікації сервера. Імпортуйте його разом із закритим ключем до сховища сертифікатів локального комп’ютера на машині SQL Server. Потім клацніть сертифікат правою кнопкою миші, виберіть Усі завдання → Керування особистими ключами та надайте обліковому запису служби SQL Server дозвіл Читання для закритого ключа. Відкрийте Диспетчер конфігурації SQL Server, розгорніть Конфігурація мережі SQL Server, клацніть правою кнопкою миші Протоколи для MSSQLSERVER, виберіть Властивості та виберіть сертифікат на вкладці Сертифікат. На вкладці Flags ви також можете встановити ForceEncryption на Yes, щоб кожен клієнт мав шифрувати. Перезапустіть службу SQL Server - зміна нічого не вплине, доки ви не зробите це.

✅ Дві пастки, які спричиняють майже кожне "це не спрацювало": сертифікат, ім’я якого не збігається з іменем, за яким під’єднуються клієнти (підключаються за допомогою імені DNS сервера, а не його IP-адреси), і обліковий запис служби, який не може прочитати закритий ключ. Після перезапуску в журналі помилок SQL Server має бути записано, що сертифікат успішно завантажено для шифрування. Якщо він скаржиться натомість, у першу чергу слід шукати дозвіл приватного ключа.
⚠️ Про ForceEncryption: встановлення на сервері значення «Так» примусово шифрує кожне з’єднання, що є правильним кінцевим станом лише після встановлення довіреного сертифіката. Примусове його використання, поки сервер все ще містить свій самопідписаний сертифікат, просто призведе до того, що всі клієнти зі строгим клієнтом вийдуть з цією ж помилкою відразу.
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__

▶️ Переглянути повне відео
Цей посібник ґрунтується на відео Technical Anshu щодо виправлення помилки шифрування SQL Server • Застрягли на якомусь кроці? Запитуйте у коментарях до відео — там вам допоможуть 🙏