SNAC アプリケーションをアップグレードした後の "信頼されていない機関によって証明書チェーンが発行されました" エラー
データベース アプリケーションのドライバーとしてのSQL Server Native Client 11.0 (SNAC) のサポートは、2022 年 7 月 12 日に終了しました。 SNAC 11.0 を使用するすべてのアプリケーションは、新しいバージョンのドライバーを使用するように更新する必要があります (「SQL SERVER 用 ODBC ドライバーのダウンロード」および「Microsoft OLE DB Driver for SQL Serverのダウンロード」を参照してください)。 この記事では、SNAC 11.0 アプリケーションをアップグレードして、Microsoft OLE DB Driver 19 for SQL Serverまたは Microsoft ODBC Driver 18 を使用するようにアップグレードするときに発生する問題について説明します。x for SQL Server。
- Microsoft OLE DB Driver 19 for SQL Server にアップグレードされました
- Microsoft ODBC Driver 18 にアップグレードされました。x for SQL Server
microsoft OLE DB Driver 19 for SQL Server (Provider=MSOLEDBSQL19) を使用するように SQL Server Native Client 11.0 (Provider=SQLNCLI11) アプリケーションを最近アップグレードした場合、次のようなエラー メッセージが表示されることがあります。
[Microsoft OLE DB Driver 19 for SQL Server]: クライアントが接続を確立できない
[Microsoft OLE DB Driver 19 for SQL Server]: SSL プロバイダー: 証明書チェーンは、信頼されていない機関によって発行されました。
原因
これらのエラーは、次の条件が両方とも当てはまる場合に発生します。
SQL Server インスタンスの [暗号化の強制] 設定は [いいえ] に設定されています。
クライアント 接続文字列では、暗号化プロパティの値が明示的に指定されていないか、DSN で [暗号化] オプションが明示的に設定または更新されませんでした。
このエラーは、クライアント ドライバーの既定の動作が変更されたために発生します。 以前のバージョンのクライアント ドライバーは、データ暗号化が既定で オフ になっていると想定するように設計されています。 新しいドライバーでは、この設定が既定で ON であると想定されています。 データ暗号化は ON に設定されているため、ドライバーはサーバーの証明書の検証を試み、失敗します。
ソリューション
解決策 1:Microsoft OLE DB Driver for SQL Server 18.x を使用します。 Microsoft OLE DB Driver for SQL Serverのリリース ノートからドライバーをダウンロードできます。
解決策 2:アプリケーション 接続文字列 プロパティで、[データの暗号化/使用暗号化] 設定に [はい] または [必須] の値が既に指定されている場合は、値を [いいえ] または [省略可能] に変更します。 たとえば、 Data=Optional に暗号化を使用します。 接続文字列で [データの暗号化/暗号化の使用] に値が指定されていない場合は、接続文字列に [データに暗号化を使用する] =[省略可能] を追加します。 詳細については、「 暗号化と証明書の検証」を参照してください。
解決策 3:接続文字列にを追加
;TrustServerCertificate=true
します。 これにより、検証なしでクライアントが証明書を信頼するように強制されます。-
注:
現時点では、MSOLEDBSQL19は、暗号化と信頼された証明書 (自己署名証明書が不十分) のないリンク サーバーの作成を防ぎます。 リンク サーバーが必要な場合は、サポートされている既存のバージョンの MSOLEDBSQL を使用します。