免费SSL证书配置需要准备什么?

更新时间:2025-12-30 来源:TopSSL技术团队

免费SSL证书配置方法

免费SSL证书配置主要分为三个步骤:​申请证书、完成域名验证、将证书安装到服务器并启用HTTPS​。目前最常见的免费SSL证书方案是 Let's Encrypt,证书有效期为90天,可以通过ACME客户端自动续期。

如果只是给普通网站配置免费SSL证书,HTTP-01验证比较简单;如果需要申请通配符证书,或者服务器无法直接接受外部HTTP验证,则应使用DNS-01验证。


免费SSL证书配置需要准备什么?

开始配置之前,需要准备:

  • 一个已经注册并可以正常解析的域名;
  • 能够修改域名DNS解析记录的权限;
  • 网站服务器或主机管理权限;
  • 根据服务器环境选择对应的证书安装方式。

如果使用 Let's Encrypt,常见的申请工具包括 Certbot、acme.sh 等ACME客户端。

需要注意的是,​申请SSL证书和配置SSL证书是两个步骤​。

申请阶段主要解决“CA如何确认你控制这个域名”;配置阶段则是把签发好的证书安装到Nginx、Apache、IIS等服务器上


免费SSL证书有哪些验证方式?

申请免费SSL证书时,需要先完成域名控制权验证。常见方式主要有HTTP-01和DNS-01。

验证方式验证方法支持通配符适合场景
HTTP-01网站放置指定验证文件普通网站、单域名
DNS-01DNS添加TXT记录通配符、多服务器、无法开放80端口的环境

HTTP-01文件验证

HTTP-01验证需要在网站指定目录放置一个验证文件,CA通过HTTP请求访问该文件,确认申请人能够控制该域名。

这种方式配置比较直观,适合普通网站。

例如申请:

example.com
www.example.com

ACME客户端会要求网站能够正常响应验证地址。

需要注意,HTTP-01验证依赖​80端口​,如果服务器完全无法通过80端口访问,则不能使用这种方式。

DNS-01验证

DNS-01验证是在域名DNS中添加指定的TXT记录。

例如:

主机记录:_acme-challenge
记录类型:TXT
记录值:CA生成的验证字符串

验证完成后,CA通过查询DNS记录确认域名控制权。

DNS-01最大的优势是支持通配符证书,例如:

*.example.com

因此,如果需要申请泛域名/通配符SSL证书,DNS-01是常用的选择。

注意:申请 *.example.com 并不意味着必须创建 *.example.com 的DNS解析记录。通配符解析记录与DNS-01证书验证是两件不同的事情。


使用Certbot申请免费SSL证书

以Linux服务器使用Certbot为例。

第一步:安装Certbot

Ubuntu/Debian系统可以使用:

sudo apt update
sudo apt install certbot -y

安装完成后检查:

certbot --version

能够正常显示版本号即可。


第二步:使用HTTP-01申请普通域名证书

如果网站已经运行,并且80端口可以从公网访问,可以使用HTTP验证。

例如:

sudo certbot certonly --webroot \
  -w /var/www/html \
  -d example.com \
  -d www.example.com

其中:

-w /var/www/html

表示网站根目录。

-d example.com
-d www.example.com

表示需要申请证书的域名。

验证成功后,证书一般会保存在:

/etc/letsencrypt/live/example.com/

其中比较重要的文件包括:

fullchain.pem
privkey.pem

fullchain.pem 是服务器证书及中间证书链,privkey.pem 是对应的私钥。


使用DNS-01申请通配符SSL证书

如果需要申请:

*.example.com

可以使用DNS-01验证。

例如:

sudo certbot certonly \
  --manual \
  --preferred-challenges dns \
  -d "*.example.com"

Certbot会提示需要添加类似下面的TXT记录:

主机记录:
_acme-challenge

记录类型:
TXT

记录值:
xxxxxxxxxxxxxxxx

将记录添加到DNS后,等待DNS记录能够被公网查询,再返回Certbot继续验证。

验证成功后即可获得通配符证书。

手动DNS验证有一个问题

这种方式虽然简单,但​不适合完全自动化的长期续期​。

因为证书90天后需要续期,而手动DNS验证可能再次要求人工添加TXT记录。

如果希望长期无人值守运行,建议使用支持DNS API的ACME客户端,例如通过阿里云DNS、腾讯云DNS、Cloudflare等DNS服务商API自动创建和删除验证记录。


免费SSL证书怎么安装到Nginx?

证书申请完成后,在Nginx中配置:

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    root /var/www/html;
}

检查配置:

sudo nginx -t

如果显示配置正确,再重新加载:

sudo systemctl reload nginx

然后通过:

https://example.com

访问网站。


免费SSL证书怎么安装到Apache?

Apache配置方式与Nginx有所不同,核心是指定服务器证书和私钥:

<VirtualHost *:443>
    ServerName example.com

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    DocumentRoot /var/www/html
</VirtualHost>

修改配置后检查Apache配置并重新加载服务。


免费SSL证书怎么安装到IIS?

Windows服务器使用IIS时,通常不能直接按照Nginx的PEM文件方式配置。

如果使用ACME客户端申请证书,可以让客户端将证书安装到Windows证书存储,然后在IIS中进行HTTPS绑定。

基本流程是:

申请证书 → 导入证书 → IIS网站 → 绑定 → 添加HTTPS → 选择对应证书 → 保存

如果手中只有:

.crt
.key

等文件,则可能需要先转换为:

.pfx

再导入Windows证书存储。


免费SSL证书如何自动续期?

Let's Encrypt证书有效期为90天,因此不建议等到证书过期后再手动处理。

使用Certbot时,可以先测试续期:

sudo certbot renew --dry-run

如果测试成功,可以让系统定期执行:

sudo certbot renew

Certbot会自动判断哪些证书已经接近续期时间,​不需要每次运行都重新申请证书​。

如果服务器上的Certbot已经通过系统服务或定时器配置了自动续期,通常不需要再额外设置cron。

续期完成后,如果Web服务器没有自动重新加载证书,还需要配置部署钩子,让Nginx或Apache重新加载证书。

例如:

sudo certbot renew --deploy-hook "systemctl reload nginx"

这样证书更新后,Nginx会自动加载新的证书。


配置完成后怎么检查免费SSL证书?

证书安装完成后,建议至少检查以下几个项目:

1. 检查HTTPS是否正常

访问:

https://example.com

确认网站可以正常打开。

2. 检查证书域名

确认当前访问的域名包含在证书的SAN字段中。

例如证书包含:

example.com
www.example.com

那么两个域名都可以正常使用。

3. 检查证书链

服务器需要正确发送服务器证书和必要的中间证书。

如果证书链配置不完整,部分客户端可能出现:

证书不受信任

或:

NET::ERR_CERT_AUTHORITY_INVALID

等错误。

4. 检查自动续期

执行:

sudo certbot renew --dry-run

确认续期流程没有错误。


免费SSL证书配置常见问题

免费SSL证书一定要使用Let's Encrypt吗?

不一定。

Let's Encrypt是目前使用非常广泛的免费公开信任CA之一,但免费SSL证书并不只有Let's Encrypt。不同平台和CA提供的免费证书在有效期、验证方式、域名数量和自动续期方式等方面可能存在差异。

免费SSL证书可以申请通配符吗?

可以。

以Let's Encrypt为例,通配符证书需要使用​DNS-01验证​。

例如:

*.example.com

可以保护:

www.example.com
mail.example.com
api.example.com

但不能覆盖:

a.b.example.com

因为通配符只匹配一个子域层级。

免费SSL证书需要每90天重新申请吗?

不需要手动重新申请。

证书本身有效期为90天,但可以通过ACME客户端自动完成续期。配置好自动续期后,客户端会在适当时间重新向CA申请新证书。

免费SSL证书配置后仍然显示“不安全”怎么办?

首先检查:

  1. 证书是否已经安装到正确的网站;
  2. 访问域名是否包含在证书SAN中;
  3. 中间证书是否完整;
  4. 网站页面是否存在HTTP混合内容;
  5. HTTPS绑定是否正确;
  6. CDN、反向代理是否使用了正确的证书。

如果是Nginx、Apache或IIS环境,还需要进一步检查服务器配置。


免费SSL证书配置总结

免费SSL证书的配置并不复杂,核心就是:

申请证书 → 域名验证 → 安装证书 → 配置HTTPS → HTTP跳转HTTPS → 自动续期 → 检查证书链。

普通网站优先考虑HTTP-01文件验证即可;需要通配符证书、多台服务器共用证书,或者服务器无法开放80端口时,可以选择​DNS-01验证​。

对于生产环境,真正需要注意的并不是“证书免费还是收费”,而是​证书是否受信任、续期是否自动化、证书链是否完整,以及服务器配置是否正确​。


常见问题 FAQ

Q:免费SSL证书有效期多久? A:Let's Encrypt目前签发的SSL/TLS证书有效期为90天,可以通过ACME客户端自动续期。

Q:免费SSL证书支持通配符吗? A:支持。以Let's Encrypt为例,申请通配符证书需要使用DNS-01验证。

Q:文件验证和DNS验证有什么区别? A:文件验证是在网站服务器上放置指定验证文件,DNS验证则是在域名DNS中添加TXT记录。前者配置直观,后者可以用于通配符证书,也更适合自动化管理。

Q:免费SSL证书配置后为什么还是提示不安全? A:重点检查证书域名、证书链、HTTPS绑定、混合内容以及CDN/反向代理配置。证书“签发成功”并不代表服务器端已经正确部署。

立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS安全服务平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

TopSSL是一站式SSL证书服务平台,提供免费SSL证书申请、商业SSL证书服务及HTTPS安全解决方案,支持DV、OV、EV、通配符和国密SSL证书服务。2004-2026 © 北京传诚信  版权所有 |  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn