美国VPS服务器如何启用配置免费的 SSL 证书?

美国VPS从“只支持HTTP”升级到“强制HTTPS”,是站点安全与搜索体验的基础动作。HTTPS能够保障访问数据在传输过程中的机密性与完整性,并避免浏览器提示“不安全”。幸运的是,你可以用免费SSL证书服务来完成这一目标。最常用、最成熟的方案是 Let’s Encrypt(通常配合 Certbot 或系统原生脚本)。

 

内容

一、前置条件清单(不满足会导致无法签发证书)

1)你有一个域名,并且已正确解析到你的VPS公网IP(A记录或AAAA记录)。例如:example.com 指向 VPS IP;如果还有子域名如 www.example.com 也要解析。

2)你的VPS上已经安装并运行了 Web 服务(推荐 Nginx 或 Apache),并能通过浏览器访问到站点。

3)你的VPS服务器防火墙与云安全组已放行入站端口:80/TCP(HTTP)与 443/TCP(HTTPS)。Let’s Encrypt 的默认验证方式通常依赖80端口(HTTP-01)。

4)域名必须能从公网访问到你VPS。也就是说,VPS的公网IP不能被错误路由、不能只在本地可访问。

二、准备:确认网络与系统状态

1)检查端口是否通(示例命令,按系统调整):

sudo ss -lntp | grep -E ':80|:443'

 

2)检查防火墙(ufw示例):

sudo ufw status verbose
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

 

3)如果是云厂商(美国机房/云平台),请在控制台安全组里同样放行 80/443 入站。

三、安装 Web 服务器(如你尚未安装)

下面给出简要思路:先保证站点能通过 HTTP 正常访问。

1)Nginx(示例):

sudo apt-get update
sudo apt-get install -y nginx
sudo systemctl enable --now nginx

 

2)Apache(示例):

sudo apt-get update
sudo apt-get install -y apache2
sudo systemctl enable --now apache2

 

若你已有站点配置,跳到下一节即可。

四、为 Let’s Encrypt 做验证准备(HTTP-01 最常用)

Let’s Encrypt 的签发通常需要能够在 http://域名/.well-known/acme-challenge/... 路径下返回特定验证内容。

做法通常有两种:
方法A(推荐):使用 Certbot 自动完成 Web 服务器重配置(会创建临时location/规则)。
方法B:手动放置验证文件到站点根目录的特定路径(不推荐新手,因为容易放错目录或被重定向拦截)。

本文以方法A(Certbot自动化)为主。

五、安装 Certbot 并申请免费证书(Let’s Encrypt)

提示:以下以 Debian/Ubuntu 常见环境为例。如果你是 CentOS/Rocky/Alma 等发行版,包管理命令可能略不同,但思路相同。

1)安装 Certbot(Nginx方式示例):

sudo apt-get update
sudo apt-get install -y certbot python3-certbot-nginx

 

2)首次申请证书(把域名替换成你的实际域名):

sudo certbot --nginx -d example.com -d www.example.com

 

3)交互提示一般包含:

(1)是否同意条款(Agree)
(2)邮件地址
(3)是否重定向到 HTTPS(建议选“自动重定向”)

 

4)常见失败原因与快速修复思路:

(1)提示“无法访问http://域名/.well-known…”:通常是80端口未放行、防火墙拦截、或Nginx/Apache没有正确服务该域名(server_name配置不对)。
(2)提示“域名未解析到当前IP”:检查DNS A记录/AAAA记录是否生效。你可以等待DNS刷新后重试。
(3)提示“too many requests”:短时间多次失败会触发速率限制,建议检查问题后间隔一段时间再试。

 

六、启用 HTTPS 并检查证书是否生效

当 Certbot 成功后,通常会自动完成两件事:
(1)生成证书与密钥文件(通常位于 /etc/letsencrypt/live/ 域名目录)
(2)修改 Nginx/Apache 配置以启用 443 并配置 SSL 参数

 

你可以用以下方式验证:

1)检查 Nginx 配置是否包含 server 块的 443 监听:

sudo nginx -t
sudo systemctl reload nginx

 

2)使用浏览器访问:

https://example.comhttps://www.example.com,确认浏览器不再显示不安全警告。

 

3)命令行快速查看证书信息(可选):

sudo openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

 

如果上面命令报错,请你告诉我你的发行版与Web服务器类型,我可以按环境给更准确命令。

七、强制 HTTP 跳转到 HTTPS(防止“混用”)

启用 HTTPS 后,建议对 HTTP 请求做永久重定向(301),避免用户或爬虫仍使用 http:// 访问。

Certbot交互中通常会询问是否启用重定向,你可以在那一步选择“是”。如果你之前没选,或需要手动确认,可进入 Nginx/Apache 配置检查对应规则。

以 Nginx 为例,典型逻辑是:80端口 server 块里写回 301 到 https。

八、自动续期设置(Let’s Encrypt 证书必须续期)

Let’s Encrypt 证书有效期通常为较短周期(常见为 90 天),但可以通过自动续期保证长期可用。Certbot 通常会安装 systemd 定时器或 cron 来执行续期。

1)先测试续期是否能运行(不会立即更换证书):

sudo certbot renew --dry-run

 

2)确认续期服务是否存在:

systemctl list-timers | grep -i certbot
systemctl status certbot 2>/dev/null || true

 

3)验证续期策略:当 dry-run通过后,通常就表示将来的续期也能完成。建议你至少在上线前完成一次 dry-run。

九、安全加固与注意事项(建议但不强制)

1)更新系统与软件:确保证书服务与Web服务器保持安全补丁。

2)关闭不必要的端口:仅开放 22/80/443(或你的业务所需端口)。

3)检查重定向与反向代理:若你在前面还有CDN或负载均衡,注意 X-Forwarded-Proto 等头与重定向逻辑,否则可能出现“无限跳转”或证书验证路径不通。

4)备份关键配置:例如 Nginx 的站点配置文件与证书自动续期配置(让你在迁移或重建时能快速恢复)。

总结

美国VPS服务器启用HTTPS并配置免费的SSL证书,核心流程可以概括为:先确保域名正确解析到VPS公网IP,并放行80/443端口;再安装并运行Nginx或Apache,保证HTTP可访问;随后安装 Certbot 并使用其 Nginx/Apache 自动化脚本申请 Let’s Encrypt 证书;申请成功后启用443并对80进行301强制跳转;最后务必通过 dry-run 测试并确认自动续期机制正常。只要按本文步骤逐项检查,绝大多数站点都能稳定获得免费证书并长期保持HTTPS可用。

超过 50,000 人的信任 网硕互联期待你加入我们的会员。