最推荐使用Let's Encrypt免费证书配合Certbot工具:先确保域名解析生效且HTTP可访问,再安装Certbot插件,执行sudo certbot --nginx -d yourdomain.com自动申请、配置HTTPS并设置HTTP强制跳转,其内置定时任务每日检查续期,测试用sudo certbot renew --dry-run。

为PHP网站申请免费SSL证书,核心是获取受信任的证书并正确部署到Web服务器。目前最主流、最可靠的方式是使用 Let's Encrypt,它完全免费、自动化程度高、被所有主流浏览器信任。
选择并申请Let's Encrypt证书
推荐使用 Certbot 工具(官方客户端),操作简单且支持自动续签:
- 确保你的域名已解析到服务器IP,并能通过 HTTP 正常访问(如 http://yourdomain.com)
- 在服务器上安装 Certbot(以 Ubuntu 为例):
sudo apt update && sudo apt install certbot python3-certbot-nginx(Nginx)或python3-certbot-apache(Apache) - 运行命令一键申请并配置(以 Nginx 为例):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com - 按提示输入邮箱、同意协议、选择是否重定向 HTTP 到 HTTPS,Certbot 会自动修改服务器配置并启用 HTTPS
其他免费渠道备选
若无法直接在服务器运行 Certbot(如本地开发环境或受限主机),可选用以下方式:
- 阿里云/腾讯云控制台:登录后进入 SSL 证书服务 → 选择“免费型 DV SSL” → 填写域名 → DNS 或文件验证 → 下载证书包(含 .crt、.key、.pem 文件)
- FreeSSL.cn 或 JoySSL:网页端操作,支持 DNS 或 HTTP 验证,可申请单域名或通配符证书;JoySSL 注册时填内部码 230912 可解锁更多免费选项
- Cloudflare:无需在服务器装证书,只需将域名 DNS 接入 Cloudflare,开启代理状态后,在 SSL/TLS → 概述 中选择“全面(严格)”模式即可启用免费 HTTPS(注意:这是 CDN 层加密,源站仍可走 HTTP)
证书部署与PHP环境适配
拿到证书文件后,需结合你的 PHP 运行环境完成部署:
立即学习“PHP免费学习笔记(深入)”;
- 若用宝塔面板:进入网站设置 → SSL → 选择“手动上传”,粘贴证书内容和私钥,勾选“强制 HTTPS”
- 若用 phpStudy/XAMPP:确认 Apache 的
mod_ssl已启用;将证书文件放入conf/ssl/目录;编辑conf/extra/httpd-ssl.conf,填写SSLCertificateFile和SSLCertificateKeyFile路径 - PHP 层面建议补充安全设置:在
php.ini中启用session.cookie_secure = On,并在代码中设置 Cookie 时加上secure和httponly标志
务必设置自动续签
Let's Encrypt 证书有效期仅 90 天,必须定期更新:
- Certbot 默认添加了系统级定时任务(
systemctl list-timers | grep certbot可查看) - 手动测试续签:
sudo certbot renew --dry-run - 若用 FreeSSL 或 acme.sh 等工具,需自行配置 cron 定时执行 renew 命令,并在成功后 reload Web 服务(如
nginx -s reload)



















