1、產生測試用的SSL憑證(如果已有憑證時,可跳過此步驟):
在設定前我們需要先行申請一張SSL憑證,而此憑證通常是由第三方所發送出的,由於大家也往往會卡在這個地方,所以在測試上,我們可以先行產生一張測試用的SSL憑證,我們可以透過Windows SDK 內建的一個程式 (makecert.exe) 產生SSL的憑證。
1-1 MakeCert檔案下載
由於我有安裝Visual Studio 2010與 .NET Framework,所以檔案是放置在我的下列目錄中。
檔案路徑:C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\makecert.exe
MakeCert 下載位置:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx
1-2 產生憑證
接下來我們來透過 MakeCert.exe 的程式來產生一個測試用的SSL憑證,由於SQL Server對於SSL的憑證有一些特別的要求,所以設定前請依照下列的方式進行。
請開啟一個 DOS 視窗,切換目錄到此檔案的路徑後,輸入下列的指令,完成後此憑證即會自動匯入 [憑證 – 目前的使用者] -> [個人] -> [憑證]之中。
makecert -r -pe -n "CN=SQL2012-RTM.caryhsu.com" -b 03/16/2012 -e 03/15/2016 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr currentuser -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12
PS:
2、設定SQL SERVER端的通訊協定。
2-1 請點選 [開始] -> [所有程式] -> [Microsoft SQL Server 2012] -> [組態工具] -> [SQL Server Configuration Manager] -> [SQL Server 網路組態] -> [MSSQLSERVER的通訊設定] -> [內容]
2-2 切換到 [憑證] 之後,你可以在憑證的清單中看到剛剛產生憑證,此時選擇此憑證即可。
2-3 切換到 [旗標],此時請將強制加密設定為 [是],然後選擇 [確定]。
PS:此處的加密主要是強制性對所有的 SQL Server 連線進行加密,如果此部份選擇為 [否] 的時,則決定於client是否啟用加密模式進行連線。
2-4 設定完成後,你必須重新啟動SQL Server Service。
3、驗證與測試SQL Server SSL的啟用是否正常。
3-1 重新啟動後,請確認SQL Server Error Log是否有下列的資訊。
The certificate [Cert Hash(sha1) “431786DB0D1CC78DEEEB3A4B5F0C31A541DE1C951”] was successfully loaded for encryption.
PS:中間的亂碼主要是此張憑證的憑證指紋,如下表所示。
3-2 測試連線是否有啟用SSL。
在目前為止我們並沒有設定Client連線的部份,那是否SSL已有啟用,但由於我們在 2-3 中已有設定 [強制加密] ,所以Client端可以不需要進行設定,因為Server會強制對所有的連線進行加密。
由於要觀察Server與Client端的通訊模式,所以我們在此透過網路封包捉取的方式進行監測,如果如下:
PS:封包捉取的軟體非常多,在此我是透過官方提供的 Microsoft Network Monitor 進行,下載網址如下:
Microsoft Network Monitor 3.4
http://www.microsoft.com/download/en/details.aspx?id=4865
參考連結:
Enabling Certificate for SSL on a SQL Server 2005 Clustered Installation
http://blogs.msdn.com/b/jorgepc/archive/2008/02/19/enabling-certificates-for-ssl-connection-on-sql-server-2005-clustered-installation.aspx
SQL Server fails to start with error 17182 "TDSSNIClient initialization failed with error 0xd, status code 0x38" when server is configured to use SSL
http://support.microsoft.com/kb/2023869
如何啟用 SQL Server 的執行個體的 SSL 加密,使用 Microsoft 管理主控台
http://support.microsoft.com/kb/316898
Encrypting Connections to SQL Server
http://msdn.microsoft.com/en-us/library/ms189067.aspx
憑證建立工具 (Makecert.exe)
http://msdn.microsoft.com/zh-tw/library/bfsktky3(v=vs.80).aspx
How-to use MakeCert for trusted root certification authority and SSL certificate issuance
http://blogs.technet.com/b/jhoward/archive/2005/02/02/365323.aspx
如何:啟用 Database Engine 的加密連接 (SQL Server 組態管理員)
http://technet.microsoft.com/zh-tw/library/ms191192.aspx
How to enable SSL encryption for SQL Server 2000 if you have a valid Certificate Server
http://support.microsoft.com/kb/276553/en-us
關鍵字:SQL Server、SSL、Certificate、Encryption、Secure Sockets Layer、MakeCert
沒有留言:
張貼留言