Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsumowanie
Ten artykuł ułatwia rozwiązywanie problemów z błędami zaufania łańcucha certyfikatów występującymi podczas uaktualniania aplikacji bazy danych z programu SQL Server Native Client 11.0 (SNAC) do sterownika MICROSOFT OLE DB Driver 19 lub Sterownika Microsoft ODBC 18 dla programu SQL Server.
Podczas aktualizacji z SNAC 11.0 do nowszych sterowników aplikacje mogą nie nawiązać połączenia z SQL Server, napotykając na błędy dotyczące zaufania do łańcucha certyfikatów. Ten problem występuje, ponieważ nowsze sterowniki domyślnie włączają szyfrowanie i wymagają weryfikacji certyfikatu, a funkcja SNAC domyślnie ją wyłączyła. Aby naprawić błąd, skonfiguruj certyfikat, któremu ufa klient, lub dostosuj ustawienia połączenia Encrypt, Use Encryption for Data lub TrustServerCertificate, zgodnie z opisem w tym artykule.
Które słowo kluczowe szyfrowania ma zastosowanie do sterownika i klienta
Słowo kluczowe kontrolujące szyfrowanie zależy od sterownika i sposobu tworzenia parametry połączenia przez aplikację. Jeśli używasz słowa kluczowego, którego sterownik nie rozpoznaje, połączenie kończy się niepowodzeniem z błędem "słowo kluczowe nieobsługiwane" zamiast błędu certyfikatu.
| Metoda sterownika i połączenia | Słowo kluczowe szyfrowania | Słowo kluczowe zaufanego certyfikatu |
|---|---|---|
Sterownik OLE DB 19, ciąg dostawcy (IDBInitialize::Initialize) |
Encrypt |
TrustServerCertificate=yes lub no |
Sterownik OLE DB 19, ADO lub ciąg inicjowania (IDataInitialize) |
Use Encryption for Data |
Trust Server Certificate=true lub false |
| Sterownik ODBC 18, parametry połączenia lub DSN | Encrypt |
TrustServerCertificate=yes lub no |
-
Sterownik OLE DB 19: Akceptuje
Optional,Mandatory(domyślnie) iStrict. Aby zachować wsteczną zgodność, akceptuje również wartości z wersji 18, gdzienoitrueodpowiadająyes, aOptionaliMandatoryodpowiadająfalse. -
Sterownik ODBC 18: Obsługuje
no/optional(wartość domyślna),strictyes/ orazmandatory. -
Ciągi znaków dostawcy: Użyj
TrustServerCertificate=yeslubTrustServerCertificate=no. -
Ciągi połączeń ADO i ciągi inicjalizacji: Użyj
Trust Server Certificate=truelubTrust Server Certificate=false. - Tryb ścisły: Zawsze weryfikuje certyfikat serwera i ignoruje ustawienie zaufania certyfikatu.
Użycie TrustServerCertificate=true w ciągu provider może spowodować błąd „Nieprawidłowa wartość”.
Aby zapoznać się z pełnymi listami słów kluczowych, zobacz Używanie słów kluczowych ciągu połączenia z programem OLE DB Driver for SQL Server, Główne różnice między wersjami w MSOLEDBSQL oraz DSN oraz słowa kluczowe i atrybuty ciągu połączenia.
Błąd łańcucha certyfikatów, przyczyna i rozwiązania dotyczące sterownika OLE DB 19 i sterownika ODBC 18
Wybierz kartę dla uaktualnionego sterownika. Każda karta zawiera wyświetlany komunikat o błędzie, przyczynę jego wystąpienia oraz rozwiązania w zalecanej kolejności.
- Uaktualniono do sterownika MICROSOFT OLE DB 19 dla programu SQL Server
- Uaktualniono do sterownika Microsoft ODBC 18.x dla programu SQL Server
Po uaktualnieniu z programu SQL Server Native Client 11.0 (Provider=SQLNCLI11) do sterownika Microsoft OLE DB 19 dla programu SQL Server próby nawiązania połączenia mogą zakończyć się niepowodzeniem z następującym komunikatem o błędzie:
[Sterownik Microsoft OLE DB 19 dla programu SQL Server]: Klient nie może nawiązać połączenia
[Sterownik Microsoft OLE DB 19 dla programu SQL Server]: Dostawca SSL: Łańcuch certyfikatów został wystawiony przez urząd, który nie jest zaufany.
Przyczyna błędu zaufania łańcucha certyfikatów podczas uaktualniania do sterownika Microsoft OLE DB 19
Ten błąd wskazuje, że komputer kliencki nie może zweryfikować autentyczności certyfikatu programu SQL Server, ponieważ został wystawiony przez urząd certyfikacji, któremu klient nie ufa.
Te błędy występują, jeśli oba następujące warunki są spełnione:
Ustawienie „Wymuszanie szyfrowania” dla wystąpienia SQL Server jest ustawione na Nie.
Łańcuch połączenia klienta nie określa jawnie wartości dla właściwości szyfrowania ani opcja Szyfrowanie nie została jawnie ustawiona ani zaktualizowana w DSN.
Błąd występuje z powodu zmiany domyślnego zachowania sterowników klienta. Starsze wersje sterowników klienta zakładają, że szyfrowanie danych jest domyślnie wyłączone . Nowe sterowniki zakładają, że to ustawienie jest domyślnie włączone . Ponieważ szyfrowanie danych jest włączone, sterownik próbuje zweryfikować certyfikat serwera i zakończy się niepowodzeniem.
Rozwiązania dotyczące błędu zaufania łańcucha certyfikatów podczas uaktualniania do sterownika Microsoft OLE DB 19
Instalowanie certyfikatu zaufanego przez klienta (zalecane)
Skonfiguruj certyfikat TLS na instancji programu SQL Server, korzystając z urzędu certyfikacji, któremu ufa klient. Upewnij się, że serwer dostarcza wszystkie wymagane certyfikaty pośrednie, aby klient mógł utworzyć łańcuch do zaufanego głównego urzędu certyfikacji. To podejście usuwa błąd podczas włączania szyfrowania i walidacji certyfikatu. Aby uzyskać więcej informacji, zobacz sekcję Konfigurowanie silnika bazy danych SQL Server w celu szyfrowania połączeń.
Ufaj certyfikatowi serwera bez walidacji
Jeśli nie możesz od razu udostępnić certyfikatu możliwego do zweryfikowania, ustaw sterownik tak, aby pomijał weryfikację certyfikatu. Słowo kluczowe, którego używasz, zależy od tego, w jaki sposób aplikacja tworzy parametry połączenia:
- Dodaj
TrustServerCertificate=yesdo ciągu dostawcy. - W ciągu połączenia ADO lub ciągu inicjalizacji dodaj
Trust Server Certificate=true.
To ustawienie nie włącza szyfrowania samodzielnie. Nakazuje sterownikowi pominąć weryfikację certyfikatu, gdy połączenie jest szyfrowane, co pozostawia połączenie podatne na ataki typu man-in-the-middle. Użyj go tylko jako miary tymczasowej. W Strict trybie szyfrowania sterownik ignoruje to ustawienie i zawsze weryfikuje certyfikat.
Uwaga
Obecnie MSOLEDBSQL19 zapobiega tworzeniu serwerów połączonych bez szyfrowania i zaufanego certyfikatu (certyfikat z podpisem własnym jest niewystarczający). Jeśli potrzebujesz połączonych serwerów, użyj istniejącej obsługiwanej wersji programu MSOLEDBSQL.
Ustaw słowo kluczowe szyfrowania na opcjonalne
Zmień ustawienie szyfrowania, aby sterownik nie wymagał zweryfikowanego certyfikatu. To, którego słowa kluczowego użyjesz, zależy od tego, w jaki sposób aplikacja tworzy parametry połączenia:
- W ciągu znaków dostawcy ustaw
Encrypt=Optional. - W ciągu ADO lub inicjowania ustaw wartość
Use Encryption for Data=Optional.
Wartość domyślna sterownika OLE DB 19 to Mandatory. Jeśli ciąg połączenia już określa Mandatory, yes lub true, zmień wartość na Optional. Jeśli parametry połączenia nie określają wartości, dodaj słowo kluczowe. Ta zmiana przywraca zachowanie szyfrowania w wersji 18 i zmniejsza bezpieczeństwo połączenia.
Aby uzyskać więcej informacji, zobacz Szyfrowanie i walidacja certyfikatu w bazie danych OLE DB.
Używanie sterownika OLE DB 18.x jako miary tymczasowej
Microsoft OLE DB Driver for SQL Server 18.x nie włącza szyfrowania domyślnie, więc nie ma to wpływu na tę zmianę. Traktuj tę opcję jako tymczasową i zaplanuj przejście do sterownika OLE DB 19. Sterownik można pobrać ze strony Informacje o wersji sterownika Microsoft OLE DB dla programu SQL Server.
Treści powiązane
- Włącz szyfrowane połączenia z silnikiem bazy danych
- Certyfikat otrzymany z serwera zdalnego został wystawiony przez niezaufany błąd urzędu certyfikacji podczas nawiązywania połączenia z programem SQL Server
- Niepowodzenie weryfikacji certyfikatu
- Zasady pomocy technicznej dla programu SQL Server Native Client
- Wyjaśnienie cyklu życia SNAC