如何使用过去的公钥重新创建加密证书?

如何使用过去的公钥重新创建加密证书?

因此,我们得到的是无效的 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 服务器指向新证书(完整链)。

发布了原始讨论和解决方案这里

相关内容