

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Oracle Secure Sockets Layer
<a name="Appendix.Oracle.Options.SSL"></a>

在與資料庫執行個體相關聯的選項群組中新增 Oracle SSL 選項，就能對 RDS for Oracle 資料庫執行個體啟用 SSL 加密。Amazon RDS 會使用第二個連接埠 (依 Oracle 要求) 作為 SSL 連線用途。此方法可讓資料庫執行個體與 SQL\*Plus 之間同時進行純文字和 SSL 加密的通訊。例如，您可以使用連接埠搭配純文字通訊與 VPC 內的其他資源通訊，同時使用連接埠搭配 SSL 加密的通訊與 VPC 外部的資源通訊。

**注意**  
您可以在相同的 RDS for Oracle 資料庫執行個體上使用 SSL 或原生網路加密 (NNE)，但不能同時使用這兩者。如果您使用 SSL 加密，請務必關閉任何其他連線加密。如需詳細資訊，請參閱[Oracle 原生網路加密](Appendix.Oracle.Options.NetworkEncryption.md)。

SSL/TLS 和 NNE 不再是 Oracle 進階安全性的一部分。您可以對下列 Oracle 資料庫版本的所有版本使用 SSL 加密：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

**Topics**
+ [Oracle SSL 選項的 TLS 版本](#Appendix.Oracle.Options.SSL.TLS)
+ [Oracle SSL 選項的密碼套件](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [FIPS 支援](#Appendix.Oracle.Options.SSL.FIPS)
+ [憑證與密碼套件的相容性](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [新增 SSL 選項](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [設定 SQL\*Plus 以使用 SSL 搭配 RDS for Oracle 資料庫執行個體](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [使用 SSL 連線至 RDS for Oracle 資料庫執行個體](Appendix.Oracle.Options.SSL.Connecting.md)
+ [設定透過 JDBC 的 SSL 連線](Appendix.Oracle.Options.SSL.JDBC.md)
+ [使用 SSL 連線強制執行 DN 比對](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [對 SSL 連線進行疑難排解](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Oracle SSL 選項的 TLS 版本
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

Amazon RDS for Oracle 現已支援 Transport Layer Security (TLS) 版本 1.0 和 1.2。新增 Oracle SSL 選項時，請明確地將 `SQLNET.SSL_VERSION` 設為有效值。此選項設定允許下列值：
+ `"1.0"` – 用戶端只能使用 TLS 1.0 版連線至資料庫執行個體。若為現有的 Oracle SSL 選項，`SQLNET.SSL_VERSION` 會自動設為 `"1.0"`。您可以視需要變更此設定。
+ `"1.2"`– 用戶端只能使用 TLS 1.2 來連線至資料庫執行個體。
+ `"1.2 or 1.0"`– 用戶端可以使用 TLS 1.2 或 1.0 來連線至資料庫執行個體。

## Oracle SSL 選項的密碼套件
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

Amazon RDS for Oracle 支援多個 SSL 密碼套件。根據預設，Oracle SSL 選項設定為使用 `SSL_RSA_WITH_AES_256_CBC_SHA` 密碼套件。若要指定在 SSL 連線上使用不同的密碼套件，請使用 `SQLNET.CIPHER_SUITE` 選項設定。

您可以為 `SQLNET.CIPHER_SUITE` 指定多個值。如果您在資料庫執行個體之間有資料庫連結，並決定更新密碼套件，則此技術非常有用。

下表摘要說明 Oracle Database 19c 和 21c 所有版本中 RDS for Oracle 的 SSL 支援。


| 密碼套件 (SQLNET.CIPHER\_SUITE) | TLS 版本支援 (SQLNET.SSL\_VERSION) | FIPS 支援 | FedRAMP 合規 | 
| --- | --- | --- | --- | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA (預設) | 1.0 和 1.2 | 是 | 否 | 
| SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256 | 1.2 | 是 | 否 | 
| SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | 是 | 否 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256 | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256 | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384 | 1.2 | 是 | 是 | 
| TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 1.2 | 是 | 是 | 

## FIPS 支援
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

RDS for Oracle 可讓您針對 140-2 使用美國聯邦資訊處理標準 (FIPS)。FIPS 140-2 是定義加密模組安全性要求的美國政府標準。您可以針對 Oracle SSL 選項，將設定 `FIPS.SSLFIPS_140` 設為 `TRUE`，來開啟 FIPS 標準。針對 SSL 設定 FIPS 140-2 時，密碼編譯程式庫會在用戶端與 RDS for Oracle 資料庫執行個體之間加密資料。

用戶端必須使用符合 FIPS 規定的密碼套件。建立連線時，用戶端和 RDS for Oracle 資料庫執行個體會協商來回傳輸訊息時所使用的密碼套件。[Oracle SSL 選項的密碼套件](#Appendix.Oracle.Options.SSL.CipherSuites) 中的資料表會顯示適用於每個 TLS 版本的 FIPS 相容 SSL 密碼套件。如需詳細資訊，請參閱 Oracle 資料庫文件中的 [Oracle 資料庫 FIPS 140-2 設定](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB)。

## 憑證與密碼套件的相容性
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

RDS for Oracle 支援 RSA 和橢圓曲線數位簽章演算法 (ECDSA) 憑證。當您為資料庫執行個體設定 SSL 時，必須確保您在 `SQLNET.CIPHER_SUITE` 選項設定中指定的密碼套件與資料庫執行個體所使用的憑證類型相容。

下表顯示憑證類型與密碼套件之間的相容性：


| 憑證類型 | 相容的密碼套件 | 不相容的密碼套件 | 
| --- | --- | --- | 
| RSA 憑證 (rds-ca-2019、rds-ca-rsa2048-g1、rds-ca-rsa4096-g1) | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | 
| ECDSA 憑證 (rds-ca-ecc384-g1) | TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_ECDSA\_WITH\_AES\_256\_CBC\_SHA384 | SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />SSL\_RSA\_WITH\_AES\_256\_CBC\_SHA256<br />SSL\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA384<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA256<br />TLS\_ECDHE\_RSA\_WITH\_AES\_256\_CBC\_SHA<br />TLS\_ECDHE\_RSA\_WITH\_AES\_128\_CBC\_SHA | 

當您在 `SQLNET.CIPHER_SUITE` 選項設定中指定多個密碼套件時，請務必包含至少一個與資料庫執行個體使用的憑證類型相容的密碼套件。如果您使用的選項群組具有多個具有不同憑證類型的資料庫執行個體，請針對每個憑證類型至少包含一個密碼套件。

如果您嘗試將選項群組與一個 SSL 選項建立關聯，但其中只包含一個與資料庫執行個體的憑證類型不相容的密碼套件，則操作將會失敗，並出現指出不相容的錯誤訊息。