Sql-Server
Sql Server 上的加密連接
我想讓 SQL 伺服器連接加密。我知道需要證書,但我做不到。
到目前為止,我:
在 IIS 中創建的證書。
在 MMC“證書”管理單元中添加了證書。
在我的伺服器的 SQL Server 配置管理器中:
- 註冊證書
- 強制安全登錄
- 停止並啟動“MSSQLSERVER”服務
啟動 SQL Server 服務總是會引發錯誤。上面的步驟有問題嗎?正確的步驟是什麼?
我正在使用 SQL Server 2012 和 Windows Server 2012 R2。
要為 SQL Server 的 SSL 加密創建證書,您需要一個用於伺服器身份驗證的證書。那是
$$ EnhancedKeyUsageExtension $$ OID = 1.3.6.1.5.5.7.3.1 如果您想使用 Windows 證書服務為此手動創建證書,您需要這樣做。
創建一個名為 cert.inf 的文件
[NewRequest] Subject = "CN=*FQDN*" HashAlgorithm = SHA256 KeyLength = 2048 Exportable = TRUE KeySpec = 1 KeyUsage = 0x20 MachineKeySet = TRUE ProviderName = "Microsoft RSA SChannel Cryptographic Provider" ProviderType = 12 [EnhancedKeyUsageExtension] OID = 1.3.6.1.5.5.7.3.1 [RequestAttributes] CertificateTemplate= WebServer
然後使用 CERTREG.EXE 生成證書
Certreq –new cert.inf cert.req Certreq –submit cert.reg
使用 OpenSSL 做同樣的事情
# generate key openssl genrsa -des3 -out server.key 2048 # remove pass openssl rsa -in server.key -out server.key # generate sign request, be sure to include the correct FQDN # (host name followed by primary dns suffix) openssl req -new -key server.key -out server.csr # generate self signed certificate openssl x509 -req -in server.csr -signkey server.key -out server.crt # include both the certificate and the private key in a PKCS12 keystore # (leave the export key empty) openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt
在這兩種情況下,您最終都會得到一個 CRT,您可以將其導入 SQL Server 的機器儲存,然後使用 SQL Server 配置管理器來加密連接。在後一種情況下,您必須信任根證書,而在前一種情況下,如果您不在域上執行,則必須在兩台機器上安裝 Windows CSA 的根證書