文档中心
Certbot鐢熸垚SSL璇佷功鍏嶈垂銆佸畨鍏ㄣ€佷竴閿悶瀹欻TTPS鍔犲瘑
时间 : 2025-09-27 15:43:04浏览量 : 3
什么是SSL证书?为什么你的网站需要它?

想象一下你正在咖啡馆用公共Wi-Fi网购,输入信用卡信息时,这些数据就像明信片一样在网络中"裸奔",任何人都能轻易看到。SSL证书就是给这些数据穿上"防弹衣",让它们变成只有你和网站才能读懂的"密码信"。
更专业地说,SSL(现在普遍使用其升级版TLS)证书会在浏览器和服务器之间建立加密通道。当你在地址栏看到那个小锁图标时(如下图),就说明连接是安全的。

没有SSL证书的网站会被现代浏览器标记为"不安全",这就像商店门口挂着"本店不装监控,小偷随意"的牌子,谁会放心购物呢?
Certbot是什么?它凭什么能免费发证书?
Certbot是Let's Encrypt项目的官方客户端工具。Let's Encrypt就像互联网世界的"公益组织",由非营利机构ISRG运营,得到了Mozilla、思科等科技巨头的支持。他们提供免费SSL证书的核心理念是:加密应该是互联网的标配,而不是付费功能。
Certbot的工作原理很聪明:
1. 在你的服务器上生成一对密钥(公钥和私钥)
2. 向Let's Encrypt证明你确实控制着这个域名
3. 验证通过后获得签名过的证书
4. 自动配置Web服务器使用这个证书
整个过程通常不到1分钟!相比传统CA机构动辄几百元的年费和繁琐的人工审核,这简直是技术魔法。
手把手教你用Certbot生成SSL证书
环境准备
假设你有一台运行Ubuntu的云服务器,已经安装了Nginx并配置好了域名(比如example.com)。以阿里云ECS为例:
```bash
首先SSH登录到你的服务器
ssh root@your_server_ip
```
安装Certbot
Ubuntu系统安装命令
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
如果你是CentOS用户:
sudo yum install certbot python3-certbot-nginx -y
一键获取并安装证书
最神奇的是这条命令:
sudo certbot --nginx -d example.com -d www.example.com
运行后会交互式询问几个问题:
1. 邮箱地址(用于紧急通知)
2. 是否同意服务条款(输入A同意)
3. 是否共享邮箱用于推广(建议选N)
然后...恭喜!你的网站已经启用HTTPS了!
验证是否成功
访问你的网站,应该能看到:
- 地址栏出现??图标
- URL以https://开头
- Chrome开发者工具的Security标签显示有效证书

Certbot的高级玩法
自动续期:让加密永不失效
Let's Encrypt证书只有90天有效期(这是为了安全),但Certbot可以自动续期:
测试续期是否正常工作(干跑模式)
sudo certbot renew --dry-run
实际设置定时任务(每天检查两次)
sudo crontab -e
添加这行内容:
0 */12 * * * /usr/bin/certbot renew --quiet >/dev/null 2>&1
Wildcard通配符证书:保护所有子域名
如果需要保护*.example.com的所有子域名:
sudo certbot certonly --manual --preferred-challenges=dns \
-d "*.example.com" -d example.com
这会要求你在DNS解析中添加一条TXT记录来验证所有权。适合有大量子域名的场景。
CDN配合使用案例
如果你的网站用了Cloudflare等CDN服务:
1. 先在源服务器用Certbot获取证书
2. CDN控制台选择"上传自定义证书"
3. Certbot生成的.pem文件通常在/etc/letsencrypt/live/目录下
Certbot vs其他方案对比
| 方案 | 费用 | 有效期 | 验证方式 | 适用场景 |
|-|-||-||
| Certbot | 免费 | 90天 | HTTP/DNS |个人博客、中小企业网站 |
| Comodo | $50+/年 |1年 |邮件/文件/DNS |企业官网 |
| DigiCert EV | $200+/年 |1年 |工商资料审核 |电商、金融机构 |
| Cloudflare |免费 |15年* |托管在CF |已使用CF代理的站点 |
*注:Cloudflare颁发的其实是边缘证书,源站仍需配置有效证书
SSL/TLS最佳实践清单
即使使用了Certbot,这些设置能让你的网站更安全:
1. 强制HTTPS跳转:在Nginx配置中添加:
```nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
```
2. 禁用老旧协议:编辑/etc/nginx/nginx.conf:
```nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:...';
3. 开启HSTS头:告诉浏览器以后都只用HTTPS访问
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
4. 定期检查评级:使用[SSL Labs测试工具](https://www.ssllabs.com/ssltest/)确保配置无误
FAQ常见问题解答
Q: Let's Encrypt真的可靠吗?
A: Let's Encrypt目前为超过3亿个网站提供证书,被所有主流浏览器信任。它的根证书由IdenTrust交叉签名——后者为美国***和银行提供数字认证。
Q: HTTPS会不会拖慢我的网站?
A: TLS握手确实会增加约100ms延迟,但HTTP/2协议必须基于HTTPS工作,反而能提升加载速度。实测表明启用HTTPS后页面加载时间平均缩短30%。
Q: IP地址能申请SSL证书吗?
A: Let's Encrypt不支持纯IP认证。你可以考虑自签名证书或申请便宜的单域名DV证书(约$5/年)。
Q: Windows服务器能用Certbot吗?
A: Certbot原生支持Linux/macOS。Windows用户可以使用WSL子系统或者图形化工具[Win-acme](https://www.win-acme.com/)
通过你应该已经发现:用Certbot部署HTTPS比安装手机APP还简单!立即行动吧——Google统计显示2025年未加密网站的跳出率高达83%,别让你的访客因为那个刺眼的"不安全"警告而离开。
TAG:certbot生成ssl证书,在线ssl证书生成,ssl证书怎么生成,ssl证书生成key和crt