配置 SSL/TLS 证书

本页面介绍了如何将实例配置为使用 SSL/TLS。详细了解如何将 SSL/TLS 与 Cloud SQL 搭配使用

概览

当您创建实例时,Cloud SQL 会自动创建一个服务器证书 (server-ca.pem)。

只有在客户端请求明确指定需要加密连接时,SQL Server 才会执行证书验证。在这种情况下,必须在客户端机器上安装服务器证书。否则,客户端可以随意连接,而无需对其连接字符串或证书进行任何其他更改(即使 Cloud SQL 实例上启用了“需要使用 SSL”)。

更改 SSL/TLS 证书后,您无需重启实例。

如需了解详情,请参阅 SQL Server 文档中的启用与数据库引擎的加密连接部分。

要求使用 SSL/TLS

当启用 SSL/TLS 时,您可以使用 Cloud SQL Auth 代理或 SSL/TLS 证书连接到您的 Cloud SQL 实例。如果不要求使用 SSL/TLS,那么也会允许没有有效证书的客户端建立连接。

如需启用要求使用 SSL/TLS,请执行以下操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。
    转到“Cloud SQL 实例”页面
  2. 点击实例名称,打开其实例详情页面。
  3. 点击左侧导航窗格中的连接链接。
  4. 向下滚动到安全部分。
  5. 点击只允许 SSL 连接

gcloud

gcloud sql instances patch [INSTANCE_NAME] --require-ssl
  

REST API v1beta4

  1. 在使用下面的请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    请求 JSON 正文:

    {
      "settings": {
        "ipConfiguration": {"requireSsl": "true"}
      }
    }
    

    如需发送您的请求,请展开以下选项之一:

    您应该会收到类似以下内容的 JSON 响应:

服务器证书

当您创建实例时,Cloud SQL 会自动创建一个服务器证书。只要此服务器证书有效,您就无需主动管理服务器证书。但是,服务器证书是有失效日期的(即 10 年);此日期过后,该证书就不再有效,客户端也无法再使用该证书与您的实例之间建立安全连接。 系统会定期向您发送通知,告知您服务器证书即将过期。系统会在失效日期前几天发送通知:90、30、10、2 和 1。

您可以获取服务器证书的相关信息,例如该证书的创建时间和到期时间。您也可以手动创建一个新证书。

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例名称,打开其实例详情页面。
  3. 点击左侧导航窗格中的连接链接。
  4. 向下滚动到管理服务器证书部分。

    您可以在表中查看服务器证书的失效日期。

gcloud

  1. 获取有关服务证书的信息:
    gcloud beta sql ssl server-ca-certs list --instance=[INSTANCE_NAME]
           
  2. 创建服务器证书:
    gcloud beta sql ssl server-ca-certs create --instance=[INSTANCE]
  3. 将证书信息下载到本地 PEM 文件中:
    gcloud beta sql ssl server-ca-certs list --format="value(cert)" \
    --instance=[INSTANCE_NAME] > [FILE_PATH]/[FILE_NAME].pem
  4. 通过将下载的文件复制到客户端主机上并替换现有的 server-ca.pem 文件,将所有客户端更新为使用新信息。

使用加密连接

详细了解 SQL Server 如何使用加密连接

后续步骤

  • 在 Cloud SQL 实例上管理 SSL/TLS 证书。