

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 SSL/HTTPS 加密与 Amazon Neptune 数据库的连接
<a name="security-ssl"></a>

Amazon Neptune 仅允许通过 HTTPS 连接到任何实例或集群终端节点的安全套接字层 (SSL)。

Neptune 需要至少 TLS 版本 1.2，并使用以下强密码套件：
+ `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`
+ `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`
+ `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`
+ `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`

从 Neptune 引擎版本 1.3.2.0 开始，Neptune 使用以下密码套件支持 TLS 版本 1.3：
+ TLS\_AES\_128\_GCM\_ SHA256
+ TLS\_AES\_256\_GCM\_ SHA384

即使在早期引擎版本中允许 HTTP 连接的地方，默认情况下，任何使用新数据库集群参数组的数据库集群都需要使用 SSL。*为了保护您的数据，引擎版本 `1.0.4.0` 及以上版本的 Neptune 端点仅支持 HTTPS 请求。*请参阅[使用 HTTP REST 端点连接到 Neptune 数据库实例](access-graph-sparql-http-rest.md)了解更多信息。

Neptune 自动为 Neptune 数据库实例提供 SSL 证书。您无需请求任何证书。证书在您创建新实例时提供。

Neptune 为您账户中每个区域的实例分配一个通配符 SSL 证书。 Amazon 证书提供集群终端节点、集群只读终端节点和实例终端节点的条目。

**证书详细信息**  
以下条目包含在提供的证书中：
+ 集群端点 — `*.cluster-{{a1b2c3d4wxyz}}.{{region}}.neptune.amazonaws.com`
+ 只读端点 — `*.cluster-ro-{{a1b2c3d4wxyz}}.{{region}}.neptune.amazonaws.com`
+ 实例端点 — `*.{{a1b2c3d4wxyz}}.{{region}}.neptune.amazonaws.com`

仅支持此处列出的条目。

**代理连接**  
证书仅支持上一节中列出的主机名。

如果您使用的是负载平衡器或代理服务器（例如 HAProxy），则必须使用 SSL 终止并在代理服务器上拥有自己的 SSL 证书。

SSL 传递不起作用，因为提供的 SSL 证书与代理服务器主机名不匹配。

**根 CA 证书**  
Neptune 实例的证书一般将通过操作系统的本地信任存储或 SDK（如 Java SDK）来进行验证。

如果您需要手动提供根证书，可以从 [Amazon 信任服务策略存储库](https://www.amazontrust.com/repository/)中下载 PEM 格式的 [Amazon 根 CA 证书](https://www.amazontrust.com/repository/AmazonRootCA1.pem)。

**更多信息**  
有关使用 SSL 连接到 Neptune 端点的更多信息，请参阅[设置 Gremlin 控制台以连接到 Neptune 数据库实例](access-graph-gremlin-console.md)和[使用 HTTP REST 端点连接到 Neptune 数据库实例](access-graph-sparql-http-rest.md)。