温馨提示×

linux openssl怎样更新证书

小樊
35
2026-10-10 11:25:08
栏目: 云计算

在 Linux 上使用 OpenSSL 更新证书,通常分为 更新自签名证书 或 更新 CA 签发的证书 两种场景。下面按常见情况给你说明。


一、更新自签名证书(最常见)

1. 生成新的私钥和证书(覆盖旧证书)

openssl req -x509 -newkey rsa:2048 -nodes \
  -keyout /path/to/your.key \
  -out /path/to/your.crt \
  -days 365 \
  -subj "/CN=your.domain.com"

说明:

  • -days 365:证书有效期
  • -nodes:不加密私钥
  • 会覆盖原证书文件(建议先备份)

2. 如果你已有 CSR(证书签名请求)

openssl x509 -req -in your.csr \
  -signkey your.key \
  -out your.crt \
  -days 365

二、更新 CA 签发的证书(如 Let’s Encrypt、企业 CA)

1. 生成新的 CSR(推荐)

openssl req -new -key your.key -out your.csr

如果私钥也要换:

openssl genrsa -out your.key 2048
openssl req -new -key your.key -out your.csr

2. 提交 CSR 给 CA

  • 商业 CA:上传 your.csr
  • Let’s Encrypt:用 certbot

3. 使用 certbot 更新(推荐)

certbot renew

或强制更新:

certbot renew --force-renewal

三、更新后必须做的事

1. 重启相关服务

# Nginx
systemctl restart nginx

# Apache
systemctl restart httpd

# Tomcat(需重启)
systemctl restart tomcat

2. 验证证书

openssl x509 -in your.crt -noout -dates

查看是否生效:

echo | openssl s_client -connect your.domain.com:443 | openssl x509 -noout -dates

四、常见注意事项

  • ✅ 先备份旧证书和私钥
  • ✅ 确认服务读取的是正确路径
  • ✅ 中间证书(chain)也要一起更新
  • ❌ 不要只改文件不改服务

如果你能告诉我:

  • 是 Nginx / Apache / 其他
  • 是 自签名 / Let’s Encrypt / 商业 CA

我可以给你更精确的命令。

0 踩