VPS不购买SSL证书如何实现网站HTTPS加密访问?
| 方案名称 |
证书类型 |
有效期 |
配置复杂度 |
适用场景 |
| Let’s Encrypt |
DV证书 |
90天 |
中等 |
个人网站、博客 |
| 自签名证书 |
自定义 |
自定义 |
简单 |
内部测试、开发环境 |
| Cloudflare |
共享证书 |
长期 |
简单 |
使用CDN的网站 |
| ZeroSSL |
DV证书 |
90天 |
中等 |
小型企业网站 |
VPS不购买SSL怎么实现HTTPS加密?三种免费SSL证书获取与配置方案
在VPS上部署网站时,很多用户希望在不购买商业SSL证书的情况下实现HTTPS加密访问。实际上,有多种免费方案可以满足这一需求。
主要实现方案对比
| 方案 | 优点 | 缺点 | 推荐指数 |
|------|------|------|----------|
| Let's Encrypt | 完全免费、自动化续期、浏览器信任 | 需要定期续期、配置相对复杂 | ★★★★★ |
| 自签名证书 | 完全控制、无期限限制 | 浏览器警告、不被信任 | ★★★☆☆ |
| Cloudflare CDN | 配置简单、提供额外安全功能 | 需要修改DNS、依赖第三方 | ★★★★☆ |
## 分步骤详细操作流程
方案一:使用Let's Encrypt免费证书
操作说明
通过Certbot工具自动获取和安装Let's Encrypt证书
使用工具提示
- 操作系统:Ubuntu 20.04+
- 工具:Certbot
- Web服务器:Nginx/Apache
# 更新系统包
sudo apt update && sudo apt upgrade -y
安装Certbot
sudo apt install certbot python3-certbot-nginx -y
获取并安装证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
测试自动续期
sudo certbot renew --dry-run
方案二:创建自签名证书
操作说明
使用OpenSSL生成自签名证书用于测试环境
使用工具提示
- 工具:OpenSSL
# 生成私钥
openssl genrsa -out server.key 2048
生成证书签名请求
openssl req -new -key server.key -out server.csr
生成自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
### 方案三:使用Cloudflare免费SSL
操作说明
通过Cloudflare CDN服务获取共享SSL证书
使用工具提示
- 配置方式:DNS管理
# 在VPS上配置Nginx支持Cloudflare
编辑Nginx配置文件
sudo nano /etc/nginx/nginx.conf
# 添加Cloudflare IP范围
setrealipfrom 103.21.244.0/22;
realipheader CF-Connecting-IP;
Nginx SSL配置示例
server {
listen 443 ssl;
servername yourdomain.com;
sslcertificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
sslcertificatekey /etc/letsencrypt/live/yourdomain.com/privkey.pem;
sslprotocols TLSv1.2 TLSv1.3;
sslciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
location / {
root /var/www/html;
index index.html;
}
}
## 常见问题与解决方案
| 问题 |
原因 |
解决方案 |
| 浏览器显示”不安全” |
证书链不完整或过期 |
检查证书路径,使用完整链证书,设置自动续期 |
| 网站无法通过HTTPS访问 |
防火墙阻止443端口 |
开放443端口:sudo ufw allow 443 |
| Certbot报错权限不足 |
使用非root用户执行 |
使用sudo权限或切换到root用户 |
| 混合内容警告 |
页面包含HTTP资源 |
将页面所有资源链接改为HTTPS |
| 证书续期失败 |
域名解析问题 |
检查DNS设置,确保域名正确解析到VPS IP |
防火墙配置步骤
操作说明
确保VPS防火墙允许HTTPS流量
使用工具提示
- 工具:UFW (Ubuntu)
- 端口:443 (HTTPS)
# 检查防火墙状态
sudo ufw status
允许HTTPS流量
sudo ufw allow 443
重启防火墙使配置生效
sudo ufw reload
### 证书自动续期配置
操作说明
设置定时任务自动续期Let's Encrypt证书
使用工具提示
- 频率:每天检查,到期前自动续期
# 编辑crontab
sudo crontab -e
添加自动续期任务
0 12 * /usr/bin/certbot renew --quiet
通过以上方案,用户可以在不购买商业SSL证书的情况下,在VPS上成功部署HTTPS加密访问,既保证了网站安全性,又节省了成本开支。
发表评论