Sql-Server

設置 SQL Server SSL 客戶端證書

  • March 1, 2017

我使用 OpenSSL 在我的 Linux 伺服器上創建了一個證書頒發機構。我已將該證書頒發機構添加到Windows Trusted Root Certificate Authorities它現在可以辨識的 .

從這一點開始,我需要做什麼來創建 SQL Server 將辨識並能夠使用的有效 SSL 證書?假設我的 CA 密鑰被命名root.key,它的證書被命名root.pem,它的等效證書籤名請求被命名root.csr

沒有指南/教程能夠告訴我這一點。每個指南似乎都關心使用數據庫伺服器創建證書頒發機構並生成密鑰或其他東西 - 我想要這個。我想要的只是讓我的 Linux 伺服器生成 SSL 證書,以及讓我的客戶端數據庫機器使用這些證書(可能無需通過 Microsoft 管理控制台和其他不必要的複雜的 Bullsh*t),這樣我就可以連接到它們通過我的 Linux 機器上的 TCP/IP(不使用加密時可以正常連接)。執行 MSSQL 伺服器的電腦不是域的一部分,它的電腦名/主機名是WORKSTATION(如果這很重要的話)。

我假設已經使用您的 linux 伺服器為伺服器身份驗證創建了證書。您本質上描述的是公共 CA 用於配置其證書的相同概念。CA 或證書頒發機構是用於證明使用者、電腦和組織的身份以及生成、管理和更新證書的服務或應用程序。我建議從您的 SQL Server 中刪除 CA 服務。您將不需要它,如果您確實使用它為 SQL Server 創建證書,您將在 SQL Server 上創建一個自簽名證書,這將使您面臨中間人攻擊的風險. 也可以通過簡單地將 Force Encryption 設置為 true 來加密所有會話,但這會導致 SQL Server 在內部生成自簽名證書,

只要你的 SQL Server、linux 系統和客戶端系統可以相互通信,並且你在 linux 系統上使用 CA 的證書,那麼應該發生的是客戶端與 SQL Server 發起會話,然後響應請求安全會話並將從 linux 伺服器生成的證書提供給客戶端進行驗證。那麼客戶端應該通過兩種方式來驗證證書,通過與linux系統驗證它是一個有效的證書,並通過使用數字簽名來驗證它沒有被修改。客戶端系統還需要一種方法來驗證證書是否可信,這意味著將它或來自 linux CA 的根證書添加到客戶端的信任庫中。

在 SQL Server 上啟用 SSL 的基礎是將證書和私鑰導入執行數據庫引擎的服務帳戶的證書儲存區,然後使用 SQL Server 配置管理器在伺服器協議的屬性中將強制加密屬性設置為是. 在您的情況下,您可能需要將 pem 和密鑰文件轉換為 Windows Server 支持的格式。將 CERT/PEM 證書轉換為 PFX證書的問題專門解決了使用 OpenSSL 來完成此操作。

引用自:https://dba.stackexchange.com/questions/145960