以字符串形式存储证书,密码还有用吗?

2021-03-11 03:13:33 +08:00
 Rocketer

有些证书的私钥是有密码保护的,使用时需要输入密码。

现在我要把证书以字符串的形式存到数据库里,那么我是必须存储解密后的证书文本,还是可以直接原样存储证书的文本,保持密码呢?

对这一块不太懂,求指点,谢谢

2621 次点击
所在节点    程序员
16 条回复
FucUrFrd
2021-03-11 03:17:59 +08:00
要 binary 不能是 string, 保持密码,完结。
Rocketer
2021-03-11 04:42:29 +08:00
@FucUrFrd 不好意思,没看懂。

我知道无密码的证书就是纯文本的,你的意思是有密码的证书是二进制吗?所以我如果存储字符串,就肯定是解密后的了?
msg7086
2021-03-11 04:49:25 +08:00
都可以。反正都能储存成文本编码的形式。
FucUrFrd
2021-03-11 05:06:41 +08:00
@Rocketer der,pfx 证书就是二进制的,不要烦,一把梭,设计一开始你就要考虑兼容性,万一输入 pfx 难道整个系统推倒重来么
Rocketer
2021-03-11 05:56:27 +08:00
@FucUrFrd 文本型字段是件确定了的事,如果非要存储二进制,那就转成 base64 编码存储。

我不是证书的使用人,所以我也不太懂,我只负责存储。我就是想知道是不是必须要保存密码。
ratazzi
2021-03-11 08:10:09 +08:00
存储解密后的证书就不需要存密码了,但是为了安全要考虑使用信封加密,被脱裤少一点风险
zhyl
2021-03-11 08:33:07 +08:00
存密码你是存 hash 后的还是原密码呢,证书密钥同理
ratazzi
2021-03-11 08:44:06 +08:00
@zhyl 跟密码可完全不一样,证书你给 hash 了还怎么用
jorneyr
2021-03-11 09:08:14 +08:00
字符串只是证书二进制的展示形式,方便传输和复制粘贴
imdong
2021-03-11 09:34:41 +08:00
安全考虑,不要存密码了。

至于字符串和二进制,怎么方便怎么来,反正都能搞定。

如果有密码就在使用的时候再输入,这样玩意数据泄漏后多少还能安全点。
zhyl
2021-03-11 09:59:51 +08:00
@ratazzi 只是类比,没让你存哈希后的证书,而是存加密后的证书,用的时候用密钥解密一下不就行了?
eason1874
2021-03-11 11:23:16 +08:00
直接存证书本身。

如果不是字符串,转换一下进制不就可以了吗?取出来的时候再转回去,然后解密。
FucUrFrd
2021-03-11 12:24:49 +08:00
跟你们码农沟通真他么累,MySQL blob 类型管你什么类型,直接存进去就得了,不需要转换,你是 string 就 varchar,随便你吧
Rocketer
2021-03-11 12:35:07 +08:00
@FucUrFrd 我可没说我是用数据库存储的。

我已经反复说必须是字符串了,而你从一开始就坚持跑题,我不跟着你跑你还烦躁,你吃枪药了吗?
annielong
2021-03-11 12:53:15 +08:00
加密码的证书应该是用密码再次加密了吧,导入时候根据密码解密,单独保存要么两个字段一个存证书一个存密码,要么只存解密后的证书
hxndg
2021-03-11 13:52:55 +08:00
@FucUrFrd
考虑兼容性问题就一把梭可还行,追求兼容性不追求通用性了?

@Rocketer
按照道理,证书和私钥分开保存。无论是 PFX 还是 DER 的 FORMAT 的证书都直接转成 PEM 的容器类型保存,读入的时候 d2i 或者 i2d 的转换一下就成。
私钥就需要单独加密存储了。

你们在做秘钥管理吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/760521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX