[研究]SQL Server 2022啟用資料庫引擎的加密連線
2023-05-08
資料庫傳輸連線加密,和 ASP.NET 的 Web.Config中的資料庫連線字串加密,是兩碼子事情。一個是針對「網路資料傳輸」,一個是針對「連線字串設定值」。
設定 SQL Server 資料庫引擎來加密連線
https://docs.microsoft.com/zh-tw/sql/database-engine/configure-windows/enable-encrypted-connections-to-the-database-engine?view=sql-server-ver15
用來為 SQL Server 建立自我簽署憑證的 PowerShell 指令碼 (建立3年的憑證)
下列程式碼片段可用來在執行 SQL Server 的電腦上建立自我簽署憑證。 該憑證符合獨立 SQL Server 執行個體的加密需求,並儲存在本機電腦的憑證存放區中 (PowerShell 必須以系統管理員身分啟動):
|
上面憑證期限設定36個月,實際測試1200 (100年)、12000 (1000年)都可成功,1200000 (1萬年) 失敗,猜測期限範圍如下:
日期範圍 1753 年 1 月 1 日到 9999 年 12 月 31 日
https://learn.microsoft.com/zh-tw/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-ver16
確認網路加密
若要確認您已設定好網路加密並有成功啟用,請執行下列 Transact-SQL 查詢:
USE [master] GO SELECT DISTINCT (encrypt_option) FROM sys.dm_exec_connections; |
********************************************************************************
實際過程
********************************************************************************
ASP.NET 網站使用 SSL 加密連線存取 SQL Server
客戶端Web.config連線字串加上;Encrypt=yes
<connectionStrings>
<add name="PlaygroundConnectionString" connectionString="Data Source=(local);
Initial Catalog=Playground;Integrated Security=True; Encrypt=yes"
providerName="System.Data.SqlClient" />
</connectionStrings>
|
PS:如果 Web.Config 那邊變更後無法正常運作,Data Source 可能需要改成實際的主機名稱 or FQDN 名稱。
PS:如果 Data Source 原本是 IP,可能要在 hosts 檔案設定 名稱和IP對應,然後設定名稱。
(完)
相關
[研究]SQL Server 2022預設sa和administrator帳號權限檢視
https://shaurong.blogspot.com/2023/05/sql-server-2022saadministrator.html
[研究]SQL Server 2022啟用資料庫引擎的加密連線
https://shaurong.blogspot.com/2023/05/sql-server-2022.html
[研究] SQL Server 2016使用 SSL 加密連線
http://shaurong.blogspot.com/2017/09/sql-server-2016-ssl.html
沒有留言:
張貼留言