首页建站教程站长工具网址导航免费资源

免费SSL证书申请与配置完整教程

728×90 教程页顶部广告位

HTTPS已经成为网站的标配,浏览器会标记HTTP网站为"不安全"。这篇教程教你免费申请SSL证书,让网站支持HTTPS。

一、什么是SSL证书

SSL证书(Secure Sockets Layer)是一种数字证书,用于加密浏览器和服务器之间的数据传输,防止数据被窃听和篡改。安装SSL证书后,网站地址会从 http:// 变成 https://,浏览器地址栏显示小锁图标。

HTTPHTTPS
传输方式明文传输,可被窃听加密传输,安全
端口80443
浏览器标记"不安全"警告小锁图标
SEO影响降权加权(Google优先收录HTTPS)
需要证书不需要需要SSL证书
💡 为什么必须用HTTPS
  • 浏览器标记HTTP为"不安全",影响用户信任
  • Google和百度优先收录HTTPS网站,SEO更好
  • 防止数据被运营商或中间人篡改(如插入广告)
  • 很多新功能(Service Worker、HTTP/2、地理位置等)要求HTTPS
  • 广告联盟(AdSense等)要求网站必须支持HTTPS

二、免费SSL证书方案

证书类型颁发机构有效期申请难度推荐指数
Let's EncryptISRG90天(自动续期)简单(宝塔一键)⭐⭐⭐⭐⭐ 最推荐
阿里云免费DV阿里云1年中等(需审核)⭐⭐⭐⭐ 推荐
腾讯云免费DV腾讯云1年中等(需审核)⭐⭐⭐⭐ 推荐
CloudflareCloudflare自动(托管)简单(接入即用)⭐⭐⭐⭐⭐ 用CF推荐
ZeroSSLZeroSSL90天简单⭐⭐⭐ 备选
💡 选择建议

用宝塔面板:直接在宝塔中申请Let's Encrypt,一键完成,自动续期,最方便
用Cloudflare:域名接入Cloudflare后自动提供免费SSL,不需要在服务器上装证书
需要1年有效期:申请阿里云/腾讯云的免费DV证书,有效期1年

三、宝塔面板一键申请

如果你用宝塔面板,申请SSL证书最简单,一键完成。

宝塔申请SSL步骤
  1. 登录宝塔面板
  2. 左侧菜单 → "网站"
  3. 点击要配置SSL的网站名称
  4. 切换到"SSL"选项卡
  5. 选择"Let's Encrypt"(推荐)
  6. 勾选要申请证书的域名(包括@和www)
  7. 填写邮箱(用于接收证书到期提醒)
  8. 勾选"自动续期"(强烈建议勾选)
  9. 点击"申请"
  10. 等待申请完成(通常1-2分钟)
  11. 申请成功后,证书状态显示为"已部署"
  12. 开启右上角的"强制HTTPS"开关(将HTTP跳转到HTTPS)
⚠️ 申请前检查

申请Let's Encrypt证书前,确保:①域名已经解析到当前服务器IP;②安全组放行80端口(验证需要);③网站已经在宝塔中创建并绑定了域名;④没有其他证书冲突。否则申请会失败。

3.1 部署其他证书

如果申请了阿里云/腾讯云的证书,可以在宝塔中手动部署:

  1. 在SSL选项卡中选择"其他证书"
  2. 将证书文件(.pem或.crt)的内容粘贴到"证书(PEM格式)"框
  3. 将私钥文件(.key)的内容粘贴到"私钥(KEY)"框
  4. 点击"保存"
  5. 开启"强制HTTPS"

四、手动申请Let's Encrypt

如果不用宝塔,可以用certbot工具手动申请Let's Encrypt证书。

CentOS系统手动申请
  1. 安装certbot:yum install certbot python3-certbot-nginx -y
  2. 申请证书(Nginx插件自动配置):certbot --nginx -d example.com -d www.example.com
  3. 按提示输入邮箱、同意协议
  4. 选择是否强制HTTPS(选2:Redirect)
  5. 证书自动安装到Nginx配置中
  6. 测试自动续期:certbot renew --dry-run
Ubuntu/Debian系统
  1. 安装certbot:apt install certbot python3-certbot-nginx -y
  2. 申请证书:certbot --nginx -d example.com -d www.example.com
  3. 后续步骤同上

五、HTTP强制跳转HTTPS

安装SSL证书后,需要将HTTP请求自动跳转到HTTPS,确保用户访问的是加密版本。

5.1 宝塔面板中设置

最简单的方式:在网站SSL设置页面,开启右上角的"强制HTTPS"开关即可。

5.2 Nginx配置中设置

手动在Nginx配置中添加跳转规则:

Nginx HTTP跳转HTTPS配置

在Nginx配置文件中,将80端口的server块改为:

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

然后443端口的server块正常配置SSL:

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    # 其他配置...
}

5.3 WordPress中设置

如果是WordPress网站,还需要在后台设置中修改地址:

  1. WordPress后台 → 设置 → 常规
  2. WordPress地址(URL)改为 https://example.com
  3. 站点地址(URL)改为 https://example.com
  4. 点击"保存更改"
  5. 可以安装Really Simple SSL插件,自动处理HTTPS混合内容问题

六、证书续期与FAQ

6.1 证书续期

  • Let's Encrypt:有效期90天,宝塔中勾选"自动续期"会自动续期;手动安装的certbot也会自动续期(系统定时器)
  • 阿里云/腾讯云免费DV:有效期1年,到期前需要重新申请并部署
  • Cloudflare:自动管理,不需要手动续期
💡 检查证书有效期

在浏览器中点击地址栏的小锁图标 → "证书",可以查看证书的颁发者和有效期。也可以用在线工具(如sslshopper.com)检查证书状态。

6.2 常见问题

Q:申请Let's Encrypt失败怎么办?
A:常见原因:①域名没有解析到服务器;②80端口被防火墙拦截;③网站根目录权限问题;④申请次数超限(每周每个域名50次)。解决方法:检查解析和端口,用宝塔的"DNS验证"方式申请(不需要80端口)。

Q:HTTPS网站显示"混合内容"警告怎么办?
A:这是因为页面中引用了HTTP的资源(图片、CSS、JS等)。解决方法:将所有资源链接改为HTTPS,或使用协议相对路径(//example.com/...)。WordPress可以安装Really Simple SSL插件自动修复。

Q:一个证书可以保护多个域名吗?
A:Let's Encrypt支持多域名证书(SAN证书),申请时添加多个域名即可。也可以申请通配符证书(*.example.com),保护所有子域名,但通配符证书需要DNS验证。

Q:免费证书和付费证书有什么区别?
A:加密强度相同,区别在于:①验证级别(免费是DV域名验证,付费有OV企业验证、EV增强验证显示公司名);②保险金额;③技术支持;④有效期。个人网站和中小企业用免费DV证书完全足够。

Q:证书过期了网站会怎样?
A:证书过期后,浏览器会显示"您的连接不是私密连接"警告,用户需要点击高级才能继续访问,严重影响用户体验和SEO。一定要在到期前续期。

这篇教程对你有帮助吗?

728×90 教程页底部广告位