我们需要对 SQL Server 使用加密,因此我们启用了 ForceEncryption。根据文档,如果没有提供证书,SQL Server 将生成自己的内部证书来进行加密。
我们需要了解它提供的加密级别。我认为我们通常使用 2048 位证书。
内部/备用证书位于哪个证书存储区?我们如何获得加密级别?
我们需要对 SQL Server 使用加密,因此我们启用了 ForceEncryption。根据文档,如果没有提供证书,SQL Server 将生成自己的内部证书来进行加密。
我们需要了解它提供的加密级别。我认为我们通常使用 2048 位证书。
内部/备用证书位于哪个证书存储区?我们如何获得加密级别?
默认情况下,证书位于注册表中:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib
(其中
MSSQL.x
MSSQL.x 是 SQL Server 实例对应值的占位符。)如果 SQL Server 在该位置找不到证书,它将回退到在证书存储中搜索具有安装它的计算机的 FQDN 的证书。默认情况下,该证书将是机器证书,可通过 MMC 证书管理单元在
Local Computer
->Personal
->中找到。Certificates
您可以通过 MMC 证书管理单元检查此(或任何)证书的密钥长度(和其他属性),方法是浏览到它,双击它,然后点击
Details
随后出现的对话框中的选项卡证书。如果此证书也不可用,则 SQL Server 将生成一个自签名的备用证书并将其用于加密。在 SQL 服务重新启动时查看错误日志时,您可以查看正在使用的指纹或证书。此备用证书的位置尚未正式确定,其他论坛已建议这可能存在于内存中。请参阅此处了解更多信息