我的SSL证书在90天后过期,我可以根据请求生成新证书。 (我使用Let's Encrypt Without Sudo获得免费证书。)
目前我有一个简单的HTTPS服务器,我需要重启才能更新证书:
require('https').createServer({
key: fs.readFileSync('./ssl/key.pem'),
cert: fs.readFileSync('./ssl/cert.pem')
}, app).listen(443);
如何设计我的HTTPS服务器,以便在不重启服务器的情况下更新我的SSL证书?
答案 0 :(得分:0)
有几种选择,但与重启策略相比,所有这些选项都会降低性能。
一种可能性是在每个请求(或定期)上检查cert文件的最后更新时间。如果时间戳已更改(与内存中的时间戳相比),则可以重新加载密钥和证书的内容,或者生成替换前一个的新服务器实例。
我对NodeJS不太熟悉,因此我不知道https
包如何存储当前的https服务器实例。鉴于我没有看到任何接收器,我相信它可能存储在某种默认变量中。理想情况下,您的实现应该替换此值(除非您可以替换访问实例化服务器的特定key
和cert
设置值。