RDS Supabase配置SSL实现HTTPS访问

更新时间:
复制为 MD 格式

本文介绍如何为您的RDS Supabase实例配置SSL证书,并开启HTTPS访问。

背景信息

云原生数据库RDS Supabase默认向用户提供基于HTTP协议的访问端点(端口为80),以满足基本的应用开发和调试需求。然而,在生产环境或对数据传输安全性有较高要求的场景下,使用加密的HTTPS协议(端口为443)进行通信是保障数据安全、防止中间人攻击的关键措施。

RDS Supabase支持用户上传自定义的SSL证书,从而启用HTTPS协议访问。配置成功后,实例将同时支持HTTPHTTPS两种访问方式,您可以根据业务需求灵活选择,增强服务的安全性和专业性。

前提条件

在开始操作前,请确保您已满足以下条件:

  • 已成功创建云原生数据库RDS Supabase实例,且实例状态为运行中。如需创建实例,请参见开通RDS Supabase项目

  • 已准备好与实例外网地址匹配的SSL证书文件和私钥文件。

    • 生产环境(推荐):建议您从受信任的证书颁发机构(CA)购买或申请SSL证书。在申请证书时,为确保最佳兼容性,建议您选择RSA加密算法(例如:RSA 2048位)。证书通常包含一个扩展名为.pem.crt格式的证书文件和一个.key格式的私钥文件。

    • 测试环境:为了方便测试,您也可以使用工具生成自签名证书。本文将以mkcert工具为例进行演示。请注意,自签名证书不被浏览器和客户端信任,仅适用于开发和测试,请勿用于生产环境。

操作步骤

步骤一:获取实例公网地址

  1. 登录RDS控制台,在左侧导航栏单击AI应用开发 Supabase

  2. 在上方选择地域后,单击目标实例的ID,进入实例的基本信息页面。

  3. 网络信息区域,查找并记录外网连接地址。该地址的IP部分将用于生成证书。

步骤二:准备SSL证书(仅供测试演示)

重要

本节介绍的自签名证书仅用于功能演示。在生产环境中,必须使用从权威CA机构获取的有效证书。

mkcert工具为例,在本地为实例的公网IP生成一个自签名证书。

  1. 在本地开发计算机上安装mkcert。以macOSHomebrew为例:

    brew install mkcert
  2. 安装本地CA并生成根证书。此操作会将根证书添加至系统信任存储,使后续生成的证书在本机受信任。

    mkcert -install
  3. 为实例的公网地址生成证书。将命令中的<步骤一获取的公网地址>替换为实际的实例公网地址(不含端口号)。

    mkcert 127.0.0.1 <步骤一获取的公网地址> ::1 localhost my-dev.local

    示例:mkcert 127.0.0.1 47.98.xx.xx ::1 localhost my-dev.local

    命令执行成功后,证书和私钥文件分别位于./127.0.0.1+4.pem./127.0.0.1+4-key.pem

步骤三:在控制台配置SSL证书

  1. 返回RDS Supabase实例的基本信息页面。

  2. 网络信息区域,找到SSL配置项,单击其右侧的开启按钮。

  3. 在弹出的SSL设置对话框中,进行如下配置:

    • 服务器证书:打开证书文件(如 127.0.0.1+4.pem),将其全部内容复制并粘贴至此文本框。

    • 服务器证书私钥:打开私钥文件(如 127.0.0.1+4-key.pem),将其全部内容复制并粘贴至此文本框。

  4. 确认信息无误后,单击确定

    说明

    提交配置后,实例将自动重启以使SSL配置生效,重启期间,实例服务会短暂中断。

步骤四:配置IP白名单

为确保客户端能够正常访问,需将客户端的公网IP地址添加至实例的IP白名单中。

  1. 在实例详情页,单击基本信息进入白名单信息区域。

  2. 白名单信息区域中,选择目标白名单分组,然后单击修改,或单击添加白名单分组

  3. 白名单IP地址:文本框中,输入允许访问实例的IP地址或IP段。例如,0.0.0.0/0代表允许所有IP访问,此配置存在安全风险,仅建议用于测试环境

  4. 单击确定添加新的公网IP。

步骤五:验证HTTPS访问

  1. 等待实例状态恢复为运行中

  2. 返回实例的基本信息页面,在网络信息区域的外网连接地址处,会新增一个以https开头的443端口链接。 image

  3. 单击该HTTPS链接。

    • 若使用CA签发的有效证书,浏览器将直接打开Supabase欢迎页面。

    • 若使用自签名证书,浏览器将提示“您的连接不是私密连接”等安全警告。此为正常现象,可选择“继续前往”(具体措辞因浏览器而异)以访问页面。

  4. 同时,可单击原有的HTTP链接,验证80端口的访问是否仍然可用。

至此,已成功为RDS Supabase实例配置SSL并启用HTTPS访问。

成本与风险

  • 成本

    • RDS Supabase实例费用:根据所选实例规格和购买时长计费。

    • SSL证书费用:启用SSL功能本身不产生额外费用。若选用商业SSL证书,需支付相应的证书费用。使用自签名或免费证书则无此成本。

  • 风险

    • 服务中断:配置或更新SSL证书后,实例将自动重启,导致服务在重启期间(通常持续数分钟)短暂中断。建议在业务低峰期或预定维护窗口执行此操作。

    • 证书配置错误:上传的证书与私钥不匹配、内容或格式错误,均可能导致HTTPS服务启动失败。操作前请务必仔细核对。

    • 证书到期风险:SSL证书均有有效期。需关注证书到期时间并提前更新,否则证书过期将导致HTTPS访问中断。

    • 自签名证书安全风险:在生产环境中使用自签名证书存在严重安全隐患,因其无法提供有效的身份验证,并可能导致用户忽略浏览器的安全警告。严禁在生产环境中使用自签名证书,仅限用于内部开发和测试。