我已经在域实例(在Ubuntu 14.4上)成功安装了Let加密SSL证书,但我现在想在同一域的另一个虚拟实例上安装相同的证书。
问题:对于同一个域的多个虚拟实例,我应该从最初的初始版本(使用Let的加密工具)复制证书,还是有另一种更好的方法?
我想你无法查询我们的加密新证书,否则它将使第一个证书无效。
我目前正在分享有效的证书。
答案 0 :(得分:0)
从对SSL / TLS证书的共同理解的角度来看,我发现这个问题非常有趣。我个人认为在多台计算机或虚拟实例上共享相同的SSL / TLS证书没有一般问题。唯一的问题可能只存在于证书的某些属性中,例如证书的主题备用名称(DNS名称)(我的意思是类似的选项)。
rfc2818的部分3.1(服务器标识):
如果客户有关于预期身份的外部信息 服务器,主机名检查可以省略。 (例如,客户 可能正在连接到地址和主机名是动态的机器 但客户端知道服务器将提供的证书。)
...
如果存在类型为dNSName的subjectAltName扩展名,则为 必须用作身份。否则,(最具体)共同 必须使用证书的“主题”字段中的名称字段。 虽然使用通用名称是现有的做法,但确实如此 不推荐使用,并鼓励认证机构使用 而是dNSName。
唯一的问题是Let's Encrypt似乎还不支持通配符证书(参见FAQ)。我不确定限制是否仍然存在,你真的不能用主题备用名称(``)创建Let的加密,如DNS名称= www.yourdomain.com和DNS名称= * .youdomain.com。因此,您问题的确切答案可能取决于证书属性。
如果您对两台服务器使用相同的证书,则可能会对使用TLS的会话缓存产生一些额外的问题,这会提高TLS的性能,并且客户端和服务器都可以使用相同的会话ID,从而改善了TLS的表现。您应该描述您使用的确切方案,以确切地考虑您是否可能在会话ID中遇到一些问题。
答案 1 :(得分:0)
是的,这是可能的。至少有两个选择:
在手动模式下运行certbot
./certbot-auto certonly --manual -d example.com
在这种情况下,certbot需要从.well-known/acme-challenge/
提供随机文件,例如:
http://example.com/.well-known/acme-challenge/-Y5pUBNKdx5GKSloP3RifHzUW3NT9xt1UAloNkHz7wc
现在,您可以将质询文件分发到所有服务器,或者从所有站点创建重写到单个质询服务器:
rewrite ^/.well-known/acme-challenge/(.*)$ http://acme.example.com/$1 redirect;
应该从单个服务器提供 acme.example.com
,其中root指向/tmp/certbot/public_html/
(或者您将存储受挑战文件的任何位置)。
请查看hooks in certbot manual以编写此过程的脚本。
使用DNS质询。在这种情况下,系统会要求您为TXT
域名的DNS添加example.com
条记录:
_acme-challenge.example.com. 300 IN TXT "gfj9Xq...Rg85nM"
同样,您可以自动执行此using hooks --manual-auth-hook
,--manual-cleanup-hook
。