Linux服务器证书过期了怎么办?如何免费续签?
- 云服务器
- 2025-12-18
- 4
在Linux服务器管理中,证书是保障通信安全的核心组件,主要用于HTTPS加密、服务认证、数据传输加密等场景,Linux服务器证书的类型多样,包括SSL/TLS证书、代码签名证书、邮件证书等,其中最常用的是SSL/TLS证书,用于实现Web服务的HTTPS加密访问,本文将详细介绍Linux服务器证书的选型、安装、配置、维护及常见问题处理。
Linux服务器证书的类型与选型
证书类型
- 域名验证(DV)证书:仅验证域名所有权,签发速度快,适合个人博客、小型网站等低成本场景,但无法验证企业身份。
- 组织验证(OV)证书:需验证企业身份信息,证书中包含企业名称,适合企业官网、电商平台等需要展示信任的场景。
- 扩展验证(EV)证书:最高级别的验证,地址栏会显示绿色企业名称,适合金融机构、大型企业等高安全需求场景。
- 通配符证书:支持主域名及所有下一级子域名(如*.example.com),可减少多域名证书的管理成本。
- 多域名证书(SAN):可在单个证书中绑定多个不同域名(如example.com、test.com),适合需要管理多个域名的场景。
证书选型依据
- 安全需求:涉及金融、用户隐私数据的场景建议选择OV/EV证书,普通信息展示可选择DV证书。
- 成本预算:DV证书可申请免费证书(如Let’s Encrypt),OV/EV证书需付费,价格从数百元到数万元不等。
- 域名数量:单一域名选择DV/OV,多子域名选择通配符证书,跨域名选择多域名证书。
Linux服务器证书的安装与配置
以Nginx服务器为例,介绍SSL/TLS证书的安装流程(假设证书文件为domain.crt,私钥为domain.key)。
上传证书文件
通过SCP或SFTP将证书文件和私钥上传至服务器指定目录(如/etc/nginx/ssl/):

配置Nginx
编辑Nginx配置文件(/etc/nginx/nginx.conf或站点配置文件/etc/nginx/sitesavailable/default),添加以下配置:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/domain.crt; ssl_certificate_key /etc/nginx/ssl/domain.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHERSAAES128GCMSHA256:ECDHERSAAES256GCMSHA384; ssl_prefer_server_ciphers off; location / { root /var/www/html; index index.html; } }
重启Nginx服务
nginx t # 检查配置是否正确 systemctl restart nginx
强制HTTPS访问(可选)
在HTTP配置中添加301跳转:
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
配置证书自动续期(Let’s Encrypt证书)
使用Certbot工具自动续期:

证书维护与安全管理
证书有效期监控
证书过期会导致服务中断,需定期检查有效期:
# 查看证书有效期 openssl x509 in /etc/nginx/ssl/domain.crt noout dates
可通过Shell脚本监控并发送告警(如结合邮件或企业微信机器人)。
私钥安全保护
- 设置私钥文件权限为600,仅允许root用户访问: chmod 600 /etc/nginx/ssl/domain.key chown root:root /etc/nginx/ssl/domain.key
- 避免私钥泄露,定期备份并存储在安全位置(如加密U盘、云存储加密 bucket)。
证书链完整性
部分CA机构签发的证书包含中间证书,需在Nginx配置中完整指定:

ssl_certificate /etc/nginx/ssl/domain.crt; # 包含服务器证书+中间证书 # 或分别指定 ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_trusted_certificate /etc/nginx/ssl/ca.crt; # 根证书(可选)
证书吊销与更新
若私钥泄露或证书过期,需及时吊销旧证书并申请新证书:
# 吊销Let's Encrypt证书 sudo certbot revoke certpath /etc/letsencrypt/live/example.com/fullchain.pem
常见问题与解决方案
浏览器提示“不安全连接”
- 原因:证书过期、域名与证书不匹配、证书链不完整。
- 解决:
- 检查证书有效期:openssl x509 in domain.crt noout dates;
- 确认server_name与证书域名一致;
- 使用SSL Labs测试工具(https://www.ssllabs.com/ssltest/)排查证书链问题。
Nginx启动报错“ssl_certificate … failed”
- 原因:证书文件路径错误、私钥与证书不匹配、权限不足。
- 解决:
- 检查Nginx配置文件中的证书路径是否正确;
- 验证私钥与证书匹配: openssl rsa noout modulus in domain.key | openssl md5
openssl x509 noout modulus in domain.crt | openssl md5
若输出一致则匹配;
- 确保证书和私钥文件权限正确(证书644,私钥600)。
相关问答FAQs
Q1:如何为Linux服务器申请免费的SSL证书?
A1:可通过Let’s Encrypt免费申请,步骤如下:
- 安装Certbot工具:sudo apt install certbot python3certbotnginx;
- 自动申请并配置证书:sudo certbot nginx d yourdomain.com;
- Certbot会自动完成证书申请、Nginx配置及设置自动续期(默认90天)。
Q2:证书配置后,如何测试HTTPS加密是否生效?
A2:可通过以下方式测试:
- 浏览器访问:在地址栏输入https://yourdomain.com,查看是否有锁形标志,点击查看证书详情;
- 命令行工具:使用curl I https://yourdomain.com检查响应头是否包含StrictTransportSecurity(HSTS头);
- 在线测试工具:使用SSL Labs的SSL Test(https://www.ssllabs.com/ssltest/)评估证书配置安全等级。