在SQL Server数据库中保存pem证书

在SQL Server数据库中保存pem证书,sql,sql-server,certificate,byte,pem,Sql,Sql Server,Certificate,Byte,Pem,我需要将*.PEM证书的内容保存在SQL Server数据库中。我计划将它保存在nvarchar()列中,但我不确定应该使用什么长度 如果您有任何建议,我将不胜感激。如果您有将pem文件保存到关系数据库的经验,那就更好了。中X.509证书文件的大小没有上限 德。PEM采用DER并将其尺寸增加4/3。所以没有,没有 PEM格式证书大小的上限 您的私钥是512字节 对应的是另一个512字节 填充(每个部分1字节) 指数(通常为3字节) 将其标识为PrivateKeyInfo结构所需的标记 大约是另

我需要将
*.PEM
证书的内容保存在SQL Server数据库中。我计划将它保存在
nvarchar()
列中,但我不确定应该使用什么长度


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

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

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

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

添加
----开始私钥------
----结束私钥------
页眉和页脚,这是另外50个字节,总共1420个字节。(如果它是一个加密的私钥,它会大一点。)本身没有上限,但是包含私钥的文件不应该大于2048字节(如果它使用任何合理的密钥大小)


因此,作为结论,将字段定义为
varchar(2048)
应该足够安全。

没有最大证书/密钥/签名大小,证书可以有扩展

老实说,我会遵循知名公司定义的其中一个限制:

  • 思科StarOS 21.3版(2017年)定义: DER中配置的新支持的证书大小为6144字节,PEM为8192字节”

  • AWS身份和访问管理API()允许上传PEM编码格式的证书,但有以下长度限制: 最小长度为1。最大长度为16384

  • AWS证书管理器API()允许以PEM编码格式导出具有以下长度限制的证书: 最小长度为1。最大长度为32768


如果你在SQL Server上,并且在一个字符字段中查找变量长度,而不确定它会持续多长时间,那么你应该考虑一个<代码>(max)< /C> >类型,比如<代码> NVARCHAR(MAX)。没有太多的开销,如果你不需要索引(不太可能在Base64编码的PEM!),我看不出有什么缺点。