文章最后更新时间:
HTTPS已经是网站的基本配置——没有SSL证书,浏览器会显示”不安全”警告,直接影响用户信任和SEO排名。但商业SSL证书每年几百到几千元,对于中小企业来说是一笔不必要的开支。本文介绍如何零成本申请Lets Encrypt免费SSL证书,并配置自动续期,真正实现一次配置、永久有效。
一、为什么网站必须安装SSL证书?
1. 浏览器强制要求
Chrome、Edge等主流浏览器会对没有HTTPS的网站显示”不安全”警告,大量用户看到后会直接离开。
2. SEO排名因素
百度和Google都将HTTPS作为排名因素之一。有SSL证书的网站,SEO排名更有优势。
3. 数据安全
HTTPS加密传输数据,防止被窃听和篡改。尤其是有登录、表单、支付的网站,HTTPS必不可少。
4. 微信小程序必须
微信小程序要求必须使用HTTPS接口,没有SSL证书无法开发小程序。
二、Lets Encrypt介绍
Lets Encrypt是一个由Mozilla、Google、Chrome、微软等公司联合发起的非营利CA机构,致力于推动全网HTTPS化。
Lets Encrypt的优势:
- 完全免费(无任何费用)
- 证书受所有主流浏览器信任
- 支持自动申请和续期
- 开源透明,社区活跃
唯一的”限制”:证书有效期90天(其他商业证书通常1-2年)。但通过自动续期脚本,可以永不过期。
三、申请Lets Encrypt证书的方法
方法1:使用Certbot(最推荐,自动化程度高)
Certbot是Lets Encrypt官方推荐的申请工具,支持一键申请和自动续期。
支持的系统:Ubuntu、Debian、CentOS、Fedora、Windows(通过其他工具)。
申请步骤(Ubuntu/Nginx为例):
# 安装Certbot sudo apt update sudo apt install certbot python3-certbot-nginx # 申请证书并自动配置Nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # 查看证书 sudo certbot certificates
Certbot会自动修改Nginx配置,添加HTTPS,并设置定时任务自动续期。
方法2:使用acme.sh(轻量级,适合有技术基础的用户)
acme.sh是一个纯Shell脚本实现的ACME客户端,轻量、兼容性好。
# 安装acme.sh curl https://get.acme.sh | sh # 申请证书(以Nginx模式为例) ~/.acme.sh/acme.sh --issue -d yourdomain.com -d www.yourdomain.com --nginx # 安装证书到Nginx ~/.acme.sh/acme.sh --install-cert -d yourdomain.com --key-file /etc/nginx/ssl/key.pem --fullchain-file /etc/nginx/ssl/cert.pem --reloadcmd "systemctl reload nginx"
方法3:宝塔面板(一键申请,最简单)
如果使用宝塔Linux面板,申请SSL证书只需要3步:
- 在宝塔面板网站设置中,选择要申请证书的网站
- 点击”SSL”选项卡,选择”Lets Encrypt”
- 勾选域名,点击申请
宝塔会自动申请证书、自动配置HTTPS、自动设置续期任务。
方法4:云服务商提供的免费证书
- 阿里云:免费证书有效期1年,每年可免费申请20个
- 腾讯云:免费证书有效期1年,每年可免费申请20个
- Cloudflare:Universal SSL免费提供,自动续期
四、配置自动续期
Lets Encrypt证书有效期90天,必须配置自动续期,否则证书过期后网站会显示不安全。
Certbot自动续期:
# Certbot自动在 /etc/cron.d/certbot 创建定时任务 # 如果没有,手动添加: sudo crontab -e # 添加以下行(每天凌晨2点检查并续期) 0 2 * * * /usr/bin/certbot renew --quiet
acme.sh自动续期:
# acme.sh安装时自动添加定时任务 # 查看定时任务: crontab -l # 应该能看到类似: # 0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
宝塔面板自动续期:
宝塔默认已配置自动续期,无需手动操作。只需确保”自动续期”开关已开启。
续期测试:
# 手动测试续期(不会真正续期,只测试) sudo certbot renew --dry-run
五、HTTPS完整配置清单
证书申请成功后,还需完整配置HTTPS才能发挥最佳效果:
1. 强制跳转HTTP到HTTPS
# Nginx配置
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
2. 启用HSTS(HTTP严格传输安全)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
3. 禁用旧版TLS协议(只保留TLS 1.2和1.3)
ssl_protocols TLSv1.2 TLSv1.3;
4. 配置安全Cipher套件
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
5. 启用OCSP装订(提升HTTPS性能)
ssl_stapling on; ssl_stapling_verify on;
六、HTTPS配置检测
配置完成后,使用以下工具检测HTTPS配置是否正确:
- SSL Labs SSL Test:ssllabs.com/ssltest/(最全面,打分评级)
- MySSL:myssl.com(国内工具,参考性好)
- 浏览器开发者工具:查看Security标签页
目标:SSL Labs评分达到A级以上。
七、WordPress网站配置HTTPS
证书安装后,还需要修改WordPress的设置:
1. 修改WordPress地址
在WordPress后台 → 设置 → 常规:
- WordPress地址(URL):改为https://
- 网站地址(URL):改为https://
2. 修改文章和图片URL
# 修改文章内容中的HTTP链接为HTTPS UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com'); # 修改附件URL UPDATE wp_posts SET guid = REPLACE(guid, 'http://yourdomain.com', 'https://yourdomain.com');
3. 开启宝塔的强制HTTPS(如果用宝塔面板)
宝塔网站设置 → SSL → 强制HTTPS。
八、常见问题
Q:Lets Encrypt证书能被所有浏览器信任吗?
A:能。Lets Encrypt证书被所有主流浏览器信任,与商业证书无差别。
Q:证书续期会中断网站吗?
A:不会。续期操作在后台静默完成,不影响网站正常运行。
Q:一个证书可以绑定多个域名吗?
A:可以。Lets Encrypt支持多域名SAN证书,申请时用-d参数添加多个域名。
Q:泛域名证书怎么申请?
A:Lets Encrypt支持泛域名证书,使用DNS验证方式申请:certbot –manual –preferred-challenges dns -d “*.yourdomain.com” -d yourdomain.com。
总结
SSL证书是网站的标配,没有理由花钱买。Lets Encrypt完全免费,配合自动续期脚本,一次配置永久有效。Certbot、宝塔面板让申请过程极度简化,即使不懂技术也能轻松完成。
瀚煜云提供SSL证书申请与配置服务,帮企业网站安全升级HTTPS。


















暂无评论内容