Sql-Server

Sql Server 上的加密連接

  • February 27, 2017

我想讓 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 證書服務為此手動創建證書,您需要這樣做。

( http://blogs.technet.com/b/pki/archive/2009/08/05/how-to-create-a-web-server-ssl-certificate-manually.aspx )

創建一個名為 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 的根證書

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