因此,我们得到的是无效的 let's encrypt 证书,当我们尝试更新它时,公钥会发生变化。有没有办法保留旧公钥?我们的客户已实施此方法以用于 SSL 固定目的。
certbot certificates
显示:
Certificate Name: domain.com-0001 Domains: domain.com api.domain.com beta-api.domain.com beta.domain.com demo.domain.com Expiry Date: 2018-04-16 11:58:34+00:00 (INVALID: EXPIRED, REVOKED) Certificate Path: /etc/letsencrypt/live/domain.com-0001/fullchain.pem Private Key Path: /etc/letsencrypt/live/domain.com-0001/privkey.pem
更新确实有效,但会生成新的 SHA256。是否可以保留旧的?请帮忙,谢谢!
答案1
事实上,这是有可能的,解决方法如下:
导航到新文件夹并运行:
sudo certbot certonly --csr /etc/letsencrypt/csr/crs-filename.pem
此命令将在该文件夹内生成新的、有效的 letsencrypt 证书。
然后您必须通过运行以下命令手动创建完整链:
sudo cat filename-cert.pem filename-chain.pem > filename-fullchain.pem
最后一步是指向 Nginx 配置中的该文件(在我的情况下是 Nginx):
sudo nano /etc/nginx/sites-enabled/domain.com.conf
添加以下几行:
listen 443 ssl; ssl_certificate /home/username/letsencrypt/filename_fullchain.pem; ssl_certificate_key /etc/letsencrypt/archive/domain.com/privkey.pem include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
运行以下命令重新启动 Nginx:
sudo service nginx restart
这将在使用旧私钥的同时将 Web 服务器指向新证书(完整链)。
发布了原始讨论和解决方案这里。