You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:在OVH VPS上配置SSL证书,实现API的HTTPS访问

配置HTTPS访问你的API的分步指南

既然你已经完成了域名重定向设置和ZeroSSL证书的DNS验证,接下来核心就是把证书部署到VPS上,并通过反向代理实现HTTPS到原有API服务的转发。下面是具体可落地的步骤:

1. 下载并妥善保存证书文件

登录ZeroSSL控制台找到你的证书,下载包含以下文件的压缩包:

  • certificate.crt(域名证书文件)
  • private.key(证书私钥)
  • ca_bundle.crt(CA根证书链)

把这些文件上传到你的VPS,建议放在专门的证书目录,比如/etc/ssl/uphair/(可以用命令创建:mkdir -p /etc/ssl/uphair/)。注意私钥的权限必须严格限制,只有root能读取:

chmod 600 /etc/ssl/uphair/private.key

2. 安装并配置反向代理服务器(以Nginx为例,最常用)

如果你的VPS还没装Nginx,先根据系统版本安装:

  • Debian/Ubuntu系统:apt update && apt install nginx -y
  • CentOS/RHEL系统:dnf install nginx -y

然后创建Nginx配置文件,比如/etc/nginx/sites-available/api.uphair.fr,填入以下内容:

# 处理HTTP请求,自动重定向到HTTPS
server {
    listen 80;
    server_name api.uphair.fr www.api.uphair.fr;
    return 301 https://$host$request_uri;
}

# 处理HTTPS请求,反向代理到你的API
server {
    listen 443 ssl;
    server_name api.uphair.fr www.api.uphair.fr;

    # 指定证书文件路径
    ssl_certificate /etc/ssl/uphair/certificate.crt;
    ssl_certificate_key /etc/ssl/uphair/private.key;
    ssl_trusted_certificate /etc/ssl/uphair/ca_bundle.crt;

    # 配置安全的SSL参数(可选但推荐)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 反向代理到本地8090端口的API服务
    location / {
        proxy_pass http://localhost:8090;
        # 传递必要的请求头,保证API能正确识别请求来源
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 启用配置并验证Nginx

  • 创建软链接启用配置:ln -s /etc/nginx/sites-available/api.uphair.fr /etc/nginx/sites-enabled/
  • 检查配置语法是否正确:nginx -t
  • 如果提示test is successful,重启Nginx生效:systemctl restart nginx

4. 验证HTTPS访问

现在直接访问https://api.uphair.frhttps://www.api.uphair.fr,应该就能正常转发到你原来的API服务了。可以用curl命令快速测试:

curl -v https://api.uphair.fr

常见问题排查

  • 如果访问失败,先检查VPS的443端口是否开放:Debian/Ubuntu用ufw allow 443,CentOS/RHEL用firewall-cmd --add-port=443/tcp --permanent && firewall-cmd --reload
  • 确认本地API服务正常运行:curl http://localhost:8090能返回预期内容
  • 若证书报错,用openssl s_client -connect api.uphair.fr:443查看证书详情,确认证书链是否完整

内容的提问来源于stack exchange,提问作者Pierrick Martellière

火山引擎 最新活动