在云虚拟主机(尤其是共享型虚拟主机,如阿里云虚拟主机、腾讯云虚拟主机等,以及云服务器搭建的站点)上部署 HTTPS,主要分为两种情况,以下分别给出具体的操作步骤。
情况一:使用云服务商提供的“管理面板型”虚拟主机(无服务器 SSH 权限)
这类主机通常通过 cPanel、宝塔面板(云版)、或云厂商的自研管理面板(如阿里云虚拟主机管理控制台)来操作,部署 HTTPS 最简便的方法是使用面板自带的免费证书。
1、登录虚拟主机管理控制台
- 进入云服务商的控制台,找到该虚拟主机的管理页面。
2、找到 SSL/TLS 设置入口
- 通常位于“安全”、“域名管理” 或“HTTPS 设置” 栏目下。
- 例如阿里云虚拟主机:控制台 → 主机管理 → 域名管理 → 开启 HTTPS。
- 例如腾讯云虚拟主机:控制台 → 主机管理 → 管理面板 → 网站安全设置。
3、申请或上传 SSL 证书
免费证书(推荐):许多面板内置了“自动申请免费 SSL 证书”(如 Let’s Encrypt 或云厂商自己的免费证书),点击“申请”或“一键开启”即可,系统会自动验证域名并部署。
已购买的付费证书:上传证书文件(通常包含.key 私钥文件和.crt 或.pem 证书文件),将两者的内容分别粘贴到对应输入框。
手动生成 CSR(极少数面板需要):按提示生成证书请求,然后去 CA 机构申请证书,再上传。
4、强制 HTTP 跳转 HTTPS
- 在 SSL 设置页面勾选“强制 HTTPS” 或“HTTP 自动跳转到 HTTPS”。
- 如果不勾选,网站仍可通过 HTTP 访问。
5、等待生效
- 通常修改后立即生效,或等待 1-5 分钟,刷新网站,地址栏应显示绿色小锁。
情况二:使用云服务器(如 ECS、轻量应用服务器)自建的虚拟主机(有 SSH 权限)
你拥有服务器的 root 权限,需要手动配置 Web 服务器(Nginx / Apache),以下以Nginx 为例,最主流的做法。
1、获取 SSL 证书
免费方案(推荐):使用 Certbot(Let’s Encrypt 的客户端)自动申请并配置。
付费证书:去 CA 机构购买,下载后得到xxx.crt 和xxx.key 两个文件。
2、上传证书到服务器
# 创建证书存放目录(/etc/nginx/ssl/yourdomain.com/) sudo mkdir -p /etc/nginx/ssl/yourdomain.com # 上传证书文件(可以使用 scp 或 ftp) scp /local/path/yourdomain.crt root@你的服务器IP:/etc/nginx/ssl/yourdomain.com/ scp /local/path/yourdomain.key root@你的服务器IP:/etc/nginx/ssl/yourdomain.com/
3、修改 Nginx 配置文件
编辑站点配置文件(通常在/etc/nginx/sites-available/default 或/etc/nginx/conf.d/yourdomain.conf),添加 HTTPS 监听:
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com/yourdomain.key;
# 其他配置(如 root、index、location 等)
root /var/www/html;
index index.php index.html;
# ... 你的网站配置
}
# 强制 HTTP 跳转 HTTPS
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}4、测试并重载 Nginx
sudo nginx -t # 检查语法 sudo systemctl reload nginx # 重新加载配置
5、验证
- 访问https://yourdomain.com,应正常显示。
- 访问http://yourdomain.com,应自动跳转到 https。
1、证书未生效/浏览器提示不安全
- 检查防火墙是否放行443 端口(云服务器安全组/虚拟主机控制台端口设置)。
- 确认域名解析已正确指向当前主机的 IP。
- 检查证书文件的路径和权限(例如chmod 600 *.key)。
- 如果是 Let's Encrypt 证书,确认 80 端口可达(用于自动验证域名所有权)。
2、问题(Mixed Content)
- 部署 HTTPS 后,如果页面加载了 HTTP 的资源(图片、JS、CSS),浏览器会警告不安全。
- 解决办法:将所有http:// 资源链接改为https:// 或使用相对路径(如//cdn.example.com/style.css),或通过 CSP 头统一升级。
3、面板型虚拟主机不支持手动证书?
- 多数云厂商面板提供了免费证书,直接使用即可,如果面板不支持,建议考虑升级为云服务器(ECS)或更换支持更完整的主机商。
4、证书续期
- Let's Encrypt 证书有效期为 90 天,可通过 Certbot 自动续期(通常有 systemd timer)。
- 付费证书一般有效期 1 年,到期前记得上传新证书。
| 场景 | 操作难度 | 推荐方法 | 关键点 |
| 面板型虚拟主机 | 极低 | 面板一键开启免费证书 | 只需点击按钮,无需处理证书文件 |
| 云服务器自建虚拟主机 | 中等 | 使用 Certbot 自动化或手动配置 Nginx | 需修改配置文件,注意 443 端口放行 |
如果你能提供更具体的云服务商名称(如阿里云、腾讯云、百度云)以及是否拥有服务器 SSH 权限,我可以给出更精确的指令。
文章摘自:https://idc.huochengrm.cn/zj/25241.html
评论