ODBC ドライバーでの接続暗号化のトラブルシューティング

証明書チェーン エラー

"SSL プロバイダー: 信頼されていない機関によって証明書チェーンが発行されました" または "SSL ルーチン:: 証明書の検証に失敗しました: ローカル発行者の証明書を取得できません" のエラーが表示された場合:

  • 接続暗号化は、バージョン 18 以降では既定で有効になります。 接続の暗号化が以前に使用されていなかった場合、以前のバージョンの ODBC から切り替えるとこれらのエラーが表示されることがあります。
  • ユーザーは、接続文字列キーワード 「Encrypt」を no/optional に設定して、バージョン 18 より前の既定の動作と一致するように接続暗号化を無効にできます。 このオプションは、DSN 設定 UI で Connection Encryption ドロップダウン リストを使用して設定します。
  • 接続の暗号化が必要な場合は、TrustServerCertificate を yes に設定してサーバー証明書の検証をスキップすることもできます。

証明書名エラー

"SSL プロバイダー: ターゲット プリンシパル名が正しくありません" または "SSL ルーチン::証明書の検証に失敗しました: サブジェクト名がホスト名と一致しません" のエラーが表示された場合:

  • サーバーから返された証明書のホスト名が期待する名前と一致しない場合、このエラーが表示されることがあります。 既定では、サーバー名は証明書のチェックに使用されます。
  • この HostNameInCertificate キーワードを使用して、サーバー証明書に期待する名前を指定できます。
  • または、ServerCertificate キーワード (v18.1 以降) を使用して、返されたサーバー証明書の照合と検証を行う証明書を指定することもできます。
  • サーバー証明書の検証をスキップするためにも TrustServerCertificate を使用できます。

詳細については、「DSN と接続文字列のキーワードと属性」を参照してください。