You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server Always Encrypted场景下如何迁移MSSQL_CERTIFICATE_STORE证书到其他机器?

列主密钥证书迁移操作步骤

1 导出本机证书(解决CertMgr看不到证书的问题)

你在证书管理器中看不到证书,大概率是打开证书管理器的账户和你当初创建列主密钥时登录的Windows账户不一致,按以下步骤操作:

  • 切换到你当初创建MyCMK1时登录的Windows账户,不要用其他账户/管理员账户打开证书管理器
  • 按Win+R输入certmgr.msc直接回车(不要选择「以管理员身份运行」),再次查看「个人/证书」路径
  • 如果还是看不到,直接用PowerShell查找并导出证书,执行以下命令:
# 查找对应指纹的证书
$certThumbprint = "93DE41DC5F46FE6FF1436829B9362A508BB3E920"
$cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Thumbprint -eq $certThumbprint}

# 导出带私钥的PFX证书,替换为你自己的导出路径和密码
$exportPath = "C:\Temp\MyCMK1_AlwaysEncrypted.pfx"
$pfxPassword = ConvertTo-SecureString -String "自定义的PFX保护密码" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $exportPath -Password $pfxPassword

注意:必须导出带私钥的PFX格式证书,仅导出公钥CER文件无法完成后续解密操作。

2 导入证书到目标机器

将导出的PFX文件拷贝到目标机器后,使用运行MyConsoleApp.exe的Windows账户登录目标机器,执行以下操作:

图形化导入方式

  1. 按Win+R输入certmgr.msc回车打开当前用户证书管理器
  2. 右键点击「个人/证书」,选择「所有任务>导入」
  3. 选择拷贝的PFX文件,输入之前设置的PFX密码,勾选「标识此密钥为可导出的」(可选,方便后续迁移),存储位置选择「个人」存储区完成导入

PowerShell导入方式

$importPath = "C:\Temp\MyCMK1_AlwaysEncrypted.pfx"
$pfxPassword = ConvertTo-SecureString -String "之前设置的PFX保护密码" -Force -AsPlainText
Import-PfxCertificate -FilePath $importPath -CertStoreLocation Cert:\CurrentUser\My -Password $pfxPassword

3 配置私钥读取权限

导入完成后需要确保运行控制台应用的账户有证书私钥的读取权限:

  1. 在证书管理器中找到刚导入的证书,右键选择「所有任务>管理私钥」
  2. 在权限列表中添加运行MyConsoleApp.exe的Windows用户,仅授予「读取」权限即可

异常排查

如果操作后仍然报错,按以下顺序排查:

  • 确认导入的证书指纹和报错提示的指纹93DE41DC5F46FE6FF1436829B9362A508BB3E920完全一致,没有多余空格或字符
  • 确认控制台应用的连接字符串中仍然保留Column Encryption Setting=Enabled;配置
  • 如果你的控制台应用是以Windows服务/系统账户运行的,需要将证书导入到「本地计算机/个人」存储区,同时给对应的服务账户授予私钥读取权限

内容的提问来源于stack exchange,提问作者LHA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 14:39:03