サーバーへの接続は正常に確立されましたが、ログイン プロセス中にエラーが発生しました。(プロバイダー: SSL プロバイダー、エラー: 0 - 証明書チェーンは信頼できない機関によって発行されました。)」

        今日、.NET6 APIを作成する際、Dapperフレームワークを使用してデータベース接続を設定しました。設定後、DBへのリンク時にエラーが発生しました。エラーの原因はMicrosoft.Data.SqlClientであることがわかりました。システム使用.Data.SqlClient は通常の Access である可能性があり 、エラー メッセージは次のとおりです。

サーバーとの接続は正常に確立されましたが、ログイン プロセス中にエラーが発生しました。(プロバイダー: SSL プロバイダー、エラー: 0 - 証明書チェーンは信頼できない機関によって発行されました。)」

System.Data.SqlClient は、ADO.NET を使用する .NET Framework のレガシー プロバイダーです。
2019 年にリリースされた Microsoft.Data.SqlClient パッケージは、.NET Core と .NET Framework の両方をサポートする新しいパッケージです。

インターネット上の情報を確認したところ、Microsoft.Data.SqlClient パッケージがデータベースに接続されている場合、暗号化のデフォルト値が True であるため、サーバーの TLS/SSL 証明書が検証され、エラーが発生することがわかりました。証明書チェーンは、信頼されていない機関によって発行されています

オプション 1:

実際、解決策は非常に簡単で、 DB 接続文字列の後にEncrypt=false;文字列を追加するだけで問題を解決します。

//示例 在DB链接字符串末尾加上 encrypt=false;
"ConnectionStrings": {
    "Default": "Data Source=.;Initial Catalog=AuoUserdata;User Id=sa;Password=sa123;Trusted_Connection=True;Encrypt=false;"
  }

Microsoft の公式ドキュメントには次のように記載されています。

接続設定のデフォルト値が false から true に変更されました。クラウド データベースの使用が増加し、それらの接続が安全であることを保証する必要があるため、この下位互換性を破壊する変更を行う時期が来ています。

接続設定のデフォルト値が false から true に変更されました。クラウド データベースの使用が増加し、それらの接続を保護する必要があるため、この下位互換性を破壊する変更が必要な時期が来ています。

ポータル: Microsoft.Data.SqlClient 4.0 の新機能 - 暗号化のデフォルトは true に設定されています


オプション II:

Microsoft.Data.SqlClient リンク データベースは既定でサーバーの TLS/SSL 証明書を検証するため、検証証明書をスキップするには自動信頼サーバー セキュリティを追加するだけで済みます。 

//示例 在DB链接字符串末尾加上 trustServerCertificate=true;
"ConnectionStrings": {
    "Default": "Data Source=.;Initial Catalog=AuoUserdata;User Id=sa;Password=sa123;trustServerCertificate=true;"
  }

trustServerCertificate

通信層が TLS を使用して暗号化されている場合に、サーバーのトランスポート層セキュリティ (TLS) (以前のセキュア ソケット レイヤー (SSL)) 証明書を自動的に信頼する必要がある場合は True。それ以外の場合は false

述べる

trustServerCertificateプロパティが true に設定されている場合、TLS 暗号化通信層の使用時に SQL Server TLS/SSL 証明書は自動的に信頼されます。つまり、Microsoft JDBC Driver for SQL Server は SQL Server TLS/SSL 証明書を検証しません。デフォルト値は falseです。

trustServerCertificateプロパティが false に設定されている場合、SQL Server 用 Microsoft JDBC ドライバーはサーバーの TLS/SSL 証明書を検証します。

ポータル: setTrustServerCertificate メソッド

結論:

問題を解決するには、上記の 2 つの解決策のいずれかを選択してください。何か間違っている場合は、修正してください。整理するのは簡単ではありませんが、 「いいね !」または 「フォロー」をしてください、ありがとう!

参考:

Dapper の使用時にエラーが発生しました。証明書チェーンは信頼できない機関によって発行されました - jianshu.com

サーバーへの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。.Net Core WebAPI からのエラーです。

転載は出典を明記してください: https://blog.csdn.net/Csongxuan/article/details/130335700

おすすめ

転載: blog.csdn.net/Csongxuan/article/details/130335700