跳出问题限制来解决问题 -cacerts 证书库的证书丢失的解决
背景
同事咨询一个问题:Java 导入 cacerts 证书库的证书,过了一段时间后莫名丢失,导致 SSL 连接失败。偶然出现,出现了几次了。现在担心后续再出现,帮解决下到底是怎么回事。
问题分析与解决方法
分析
1:证书丢失,是不是有人把证书库文件(cacerts 文件)给换了?
2:证书过期(后确认原来证书并未过期)
没有任何人记得替换过。并且现场被破坏(丢失后紧急导入了,cacerts 原始文件不存在了)
解决办法
1:证书库文件做权限设置,只有只读权限,不能修改。
2:程序做降级处理,连接不可用事,用其他方法执行。
3:证书库种导入的这个证书是程序用来跟某个远程服务建立安全链接的(连接 LDAP), 调整程序的策略,信任远程,不在需要本地导入证书。
总结
开始解决问题时容易陷入命题作文的模式,给的问题是证书丢失,很容易就去向查找丢失的原因,设置防止丢失方法。在本次事件中,由于现场不存在,已经没有办法破案,但又必须防止再次出现这样的事故,很容易就去保护证书库(权限设置-等于加锁)。但实际更简单的方法是跳出这个命题,不需要证书不行吗?这样就跳出了限制,解决思路就更宽了。
场景总结:
东西老丢帮解决下?
1>东西加个锁,让别人拿不走(文件设为只读)
2>加装监控,报警,抓贼(监控文件变化,发现触发告警脚本,主动拷贝文件-恢复文件)
3>买保险(降级),丢了可以找保险公司赔偿(程序连不上用用其他方式运行)
4>东西放到一个别人找不到的地方(不放到默认目录下,放到自己特有的位置)
以上是常规的被问题限定的解决思路
如果跳出问题,对问题进本身进行审视
为什么需要这个东西,如果可以去除对这个东西的需求,也就不存在丢失这回事了。
版权声明: 本文为 InfoQ 作者【superman】的原创文章。
原文链接:【http://xie.infoq.cn/article/e24aea681d7fc3a10536e57a3】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论