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 (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 を使用します。

関連項目