首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server Reporting Services (SSRS) SSL/TLS 信任關係錯誤解決方案

     編輯:關於SqlServer

錯誤現象

開啟任何報表皆提示:「未能為 SSL/TLS 安全通道建立信任關係」 (The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.)

根本原因

SSRS 組態檔 rsreportserver.config 中啟用了 SSL 驗證 (SecureConnectionLevel 設定為 2 或以上),但伺服器憑證不受信任 (自簽、過期、CN 不符、缺少中繼 CA) 或用戶端未正確信任根憑證。

解決方案

方法一:降低安全連線層級 (快速恢復服務,適用開發/測試環境)

  1. 找到組態檔:
    C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config
    (路徑依實例名稱與版本調整,如 MSRS13.MSSQLSERVER 為 SQL 2016)
  2. 編輯 <Configuration> 區段下的 SecureConnectionLevel:
<SecureConnectionLevel>0</SecureConnectionLevel>
  • 0 = 僅 HTTP,不加密
  • 1 = 僅登入加密
  • 2 = 全部加密 (預設造成此錯誤的值)
  • 3 = 全部加密 + 要求用戶端憑證
  1. 存檔後重啟 SSRS 服務:net stop ReportServer && net start ReportServer (或透過 SQL Server Configuration Manager)。

方法二:正確部署受信任憑證 (生產環境標準做法)

  1. 取得受信任 CA 簽發的伺服器憑證 (含私鑰),CN/SAN 需符合報表伺服器 FQDN。
  2. 在 IIS 中繫結 HTTPS (若 SSRS 整合模式) 或使用 netsh http add sslcert 綁定原生 HTTP.SYS 端點 (原生模式)。
  3. 確保用戶端 (瀏覽器/應用程式) 信任該憑證鏈 (根 CA 已加入 Trusted Root Certification Authorities)。
  4. 將 SecureConnectionLevel 設回 2 (或 3),重啟服務驗證。

方法三:程式碼層面暫時繞過驗證 (僅限開發測試呼叫端)

// C# 範例:呼叫前插入
System.Net.ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true;

警告:生產環境嚴禁使用,會暴露中間人攻擊風險。

驗證檢查清單

  • 瀏覽器直接開啟 `https:///Reports` 是否顯示鎖頭圖示且無憑證警告。
  • openssl s_client -connect :443 -showcerts 檢視憑證鏈完整性。
  • SSRS 日誌目錄 (\LogFiles) 查看詳細錯誤堆疊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved