在SQL Server 2008 R2上还原TDE证书时出错

时间:2018-07-31 14:12:25

标签: sql-server sql-server-2008-r2 tde

在SQL Server 2008 R2中恢复TDE加密证书时遇到错误。我正在使用为SSL配置的同一证书。以下是我已采取的步骤:

  1. 首先将.crt文件转换为.cer。
  2. 之后,我使用openSSL命令将私钥(.key)文件转换为.pvk: openssl rsa -in private.key –outform PVK –pvk-strong -out private.pvk

  3. 现在,我正在尝试使用以下查询创建证书:

    CREATE CERTIFICATE TDE_Cert1 FROM FILE = [Path to .cer file]' WITH PRIVATE KEY (FILE=[Path to .pvk file],DECRYPTION BY PASSWORD = [Password used to encrypt .pvk file])

但是我遇到以下错误:

  

消息15208,级别16,状态1,第1行证书,非对称密钥,   或私钥文件不存在或格式无效。

如果我在上述过程中做错了任何事情,请提出建议。

1 个答案:

答案 0 :(得分:1)

通过深入研究此问题,我发现证书由于私钥的大小而无法还原。

我用于SSL证书的私钥的长度为4096位。但是根据TDE证书的SQL Server文档,私钥不得超过3456位。

以下是SQL Server文档的链接以供参考:

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-certificate-transact-sql?view=sql-server-2017(请检查“备注”部分)

下面列出的是用于检查私钥长度的命令(为此,您需要openssl实用程序):

openssl rsa -text -noout -in private.key

也许这些信息对面临相同问题的人有所帮助。