HTTPS已成为现代网站的标配,Chrome等主流浏览器对未启用HTTPS的网站直接显示"不安全"警告。SSL证书不仅是网站安全的基础,更是SEO排名的重要信号。本文将全面解析SSL证书的选择、申请与配置。

SSL证书基础概念

为什么网站需要SSL证书

  • 数据加密:加密用户与服务器之间的通信,防止数据被窃取
  • 身份验证:证明网站真实身份,防止钓鱼网站
  • SEO加分:Google和百度明确表示HTTPS是排名因素之一
  • 浏览器信任:Chrome等浏览器强制标记HTTP网站为不安全

SSL证书类型

类型 验证级别 验证内容 适用场景
DV(域名验证) 仅验证域名所有权 个人博客、小型网站
OV(企业验证) 验证域名+企业信息 企业官网、电商
EV(扩展验证) 严格企业身份审核 金融机构、大型企业

Let's Encrypt免费证书

Let's Encrypt简介

Let's Encrypt是Mozilla、Cisco等组织支持的免费、自动化、开放的证书颁发机构,提供DV证书,有效期90天(自动续期)。

申请条件

  • 拥有域名并可配置DNS
  • 服务器能响应80端口(HTTP)或验证域名
  • 使用Certbot等自动化工具

Nginx安装Let's Encrypt

# 安装Certbot
apt update && apt install certbot python3-certbot-nginx -y

# 申请证书并自动配置Nginx
certbot --nginx -d yourdomain.com -d www.yourdomain.com

按提示输入邮箱地址(用于过期提醒),选择是否自动重定向HTTP到HTTPS。

自动续期配置

Let's Encrypt证书有效期90天,Certbot自动配置续期任务:

# 测试续期功能
certbot renew --dry-run

# 查看续期定时任务
systemctl list-timers | grep certbot

多域名证书申请

certbot --nginx -d domain1.com -d www.domain1.com -d domain2.com -d subdomain.domain3.com

付费SSL证书选择

付费证书适用场景

  • 需要OV或EV证书以提升企业公信力
  • 需要通配符证书保护子域名
  • 需要商业保险和专业技术支持
  • 客户/合作伙伴明确要求付费证书

主流付费证书品牌

品牌 类型 价格区间/年 特点
DigiCert OV/EV 1500-5000元 全球最权威,品牌认可度高
GlobalSign OV/EV 1200-4000元 日本金融行业首选
Sectigo DV/OV/EV 200-3000元 性价比高,兼容性好

通配符证书

通配符证书用一个证书保护主域名和所有子域名:

# Let's Encrypt通配符证书(需DNS验证)
certbot certonly --manual --preferred-challenges dns -d yourdomain.com -d *.yourdomain.com

需要在DNS服务商处添加TXT记录完成域名验证。

Apache服务器SSL配置

安装证书

# 启用SSL模块
a2enmod ssl
a2enmod rewrite

# 编辑SSL配置文件
vim /etc/apache2/sites-available/default-ssl.conf

配置参数

<VirtualHost *:443>
    ServerName yourdomain.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/your-cert.pem
    SSLCertificateKeyFile /etc/ssl/private/your-key.pem
    SSLCertificateChainFile /etc/ssl/certs/your-chain.pem

    <Directory "/var/www/html">
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

重启Apache

a2ensite default-ssl
systemctl restart apache2

SSL安全配置优化

启用HSTS(HTTP严格传输安全)

在Nginx配置中添加:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

禁用SSLv3和TLS1.0/1.1

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;

启用OCSP stapling

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;

HTTPS强制跳转配置

编辑Nginx配置,将HTTP请求重定向到HTTPS:

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;
}

证书监控与管理

监控证书有效期

# 查看证书详情
openssl x509 -in /etc/letsencrypt/live/yourdomain.com/fullchain.pem -text -noout | grep "Not After"

# 安装监控脚本(每天检查)
apt install monitorix -y  # 或使用Let's Encrypt官方检查工具

证书到期前的应对

Let's Encrypt会在证书到期30天前发送续期提醒邮件。若自动续期失败,立即手动续期:

certbot renew --force-renewal

常见问题

证书申请失败怎么办?

检查域名DNS是否已正确解析,确保80端口未被占用,验证TXT记录(如申请通配符证书)。

混合内容警告如何解决?

网站启用HTTPS后,确保所有图片、CSS、JS、字体等资源也使用HTTPS链接。

多个域名需要多个证书吗?

可以使用多域名证书(SAN证书)将多个域名合并到一张证书中,Let's Encrypt最多支持100个域名。

总结

对于大多数个人站长和中小企业,Let's Encrypt免费证书是最佳选择,提供与付费证书同级的加密强度和浏览器兼容性。只有在需要OV/EV证书提升信任度、通配符证书简化管理、或客户明确要求时才考虑付费方案。无论选择哪种证书,及时续期和安全配置都是保障网站安全的必要措施。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。