次の方法で共有


SNAC アプリケーションをアップグレードした後の "信頼されていない機関によって証明書チェーンが発行されました" エラー

データベース アプリケーションのドライバーとしての SQL Server Native Client 11.0 (SNAC) のサポートは、2022 年 7 月 12 日に終了しました。 SNAC 11.0 を使用するすべてのアプリケーションは、新しいバージョンのドライバーを使用するように更新する必要があります (「 ODBC Driver for SQL Server をダウンロードするおよび microsoft OLE DB Driver for SQL Server をダウンロードするを参照してください)。 この記事では、MICROSOFT OLE DB Driver 19 for SQL Server または Microsoft ODBC Driver 18. を使用するように SNAC 11.0 アプリケーションをアップグレードするときに発生する問題について説明します。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 インスタンスの Force 暗号化 設定は No に設定されます。

  • クライアント 接続文字列で暗号化プロパティの値が明示的に指定されていないか、Encryption オプションが DSN で明示的に設定または更新されませんでした。

このエラーは、クライアント ドライバーの既定の動作が変更されたために発生します。 古いバージョンのクライアント ドライバーは、既定でデータ暗号化が OFF であると想定するように設計されています。 新しいドライバーでは、この設定が既定で ON であると想定しています。 データ暗号化は ON に設定されているため、ドライバーはサーバーの証明書の検証を試み、失敗します。

ソリューション

  • 解決策 1: Microsoft OLE DB Driver for SQL Server 18.x を使用します。 Microsoft OLE DB Driver for SQL Server の リリース ノートからドライバーをダウンロードできます

  • 解決策 2: アプリケーション 接続文字列 プロパティで、Encrypt/Use Encryption for Data の設定に対して Yes または Mandatory の値が既に指定されている場合は値を No または Optional に変更。 たとえば、「Use Encryption for Data=Optional」とします。 接続文字列で Encrypt/Use Encryption for Data の値が指定されていない場合は接続文字列に Use Encryption for Data=Optional を追加します。 詳細については、「Encryption and certificate validation」 (暗号化と証明書の検証) を参照してください。

  • 解決策 3: 接続文字列に;TrustServerCertificate=trueを追加します。 この場合、クライアントは、検証なしで証明書を信頼するように強制されます。

  • Note

    現在、MSOLEDBSQL19 では、暗号化と信頼された証明書を使用せずにリンク サーバーを作成することはできません (自己署名証明書では不十分です)。 リンク サーバーが必要な場合は、MSOLEDBSQL のサポートされている既存のバージョンを使ってください。

関連項目