今天,我会问一些比平时技术要差的东西。 的确,这或多或less是一个修辞性的问题,但我很乐意阅读你对这个话题的build议。
在我的日常工作中,我必须处理大量的Web服务器和SSL证书。 在这个工作上,我也必须要处理安全问题,如果你想在安全和浪费时间之间find一个很好的平衡点,这不是很简单。
所以,问题是:
你有没有一个方法能够重新启动你的NGinx / Apache /等Web服务器,而不需要在控制台前的操作员input证书的密码?
我的意思是,我已经有了解决scheme来纯粹地删除密码以使该过程自动化,但是这听起来有点令人毛骨悚然,特别是如果我的服务器被破坏(在运行状态下,所有数据都被encryption)将能够在没有任何密码保护的情况下检索和使用证书。
其他信息:我不能使用发行版提供的原始脚本来启动服务。 我们大多使用NGINXnetworking服务器来处理前端请求和SSL。 我们不想使用Varnish或任何其他SSL优化器。
除了使用私钥删除密码短语:
openssl rsa -in server.key.org -out server.key
您可以使用SSLPassPhraseDialog指令:
SSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter
其目的是这个外部程序首先运行安全检查,以确保系统不受攻击者的威胁,只有当这些检查通过成功,它提供的通行证短语
但是您必须提供这些安全检查以确定系统是否已经被入侵。 哪个恕我直言比从密钥中删除密码更安全。
如果你的系统受到攻击并且攻击者获得了root权限,那么passphrase脚本也可以被修改。
所以要么使用密码或者重新启动,要么安全性更好。
我可以推荐你IBM HTTP Server,他们使用kdb和密码来执行这个任务。 =)缺点是这个IHS不是启用SNI的。 所以你需要大量的公共IP地址或SAN证书。