将 pem 证书保存在 SQL 服务器数据库中

Saving a pem certificate in a SQL Server database

我需要将 *.PEM 证书的内容保存在 SQL 服务器数据库中。我打算将它保存在 nvarchar() 列中,但我不确定应该使用多长的长度。

如有任何建议,我将不胜感激。如果您有将 pem 文件保存到关系数据库的经验,那就更好了。

X.509 证书文件的大小没有上限 DER。 PEM 采用 DER 并将其大小增加 4/3。所以不,没有 PEM 格式证书大小的上限。

  • 您的私钥是512字节。
  • 对应的是另外 512 个字节。
  • 填充(每部分1个字节)。
  • 指数(通常为 3 个字节)。
  • 将其识别为PrivateKeyInfo结构所需的标签 大约还有 6 个字节。

所以,大约是 1.1k。

PEM 接受这个并将其大小增加 4/3,这意味着它将是大约 1380 个编码字节。

添加 -----BEGIN PRIVATE KEY----------END PRIVATE KEY----- 页眉和页脚,还有 50 个字节,总共 1420 个字节。 (如果是加密的私钥,会大一些。)本身没有上限,但包含私钥的文件不应大于约2048字节 如果它使用任何合理的密钥大小。

因此,总而言之,将字段定义为 varchar(2048) 应该足够安全。

没有最大 certificate/key/signature 大小,证书可以有扩展名。

老实说,我会遵循知名公司定义的这些限制之一:

  • Cisco StarOS 版本 21.3(2017,source)定义:

    The new supported size of certificate configured in DER is 6144 bytes and PEM is 8192 bytes".

  • AWS Identity and Access Management API (source) 允许上传具有以下长度限制的 PEM 编码格式的证书:

    Minimum length of 1. Maximum length of 16384.

  • AWS Certificate Manager API (source) 允许以具有以下长度限制的 PEM 编码格式导出证书:

    Minimum length of 1. Maximum length of 32768.