

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

# 您的 Classic Load Balancer 的 HTTPS 接聽程式
<a name="elb-https-load-balancers"></a>

您可以建立一個負載平衡器，使用 SSL/TLS 協定加密連線 (也稱為 *SSL 卸載*)。這個功能可在負載平衡器與啟動 HTTPS 工作階段的用戶端之間啟用流量加密，也可用於負載平衡器與 EC2 執行個體之間的連線。

Elastic Load Balancing 使用 Secure Sockets Layer (SSL) 溝通組態 (稱為*安全政策*)，以在用戶端與負載平衡器之間交涉連線。當您將 HTTPS/SSL 用於您的前端連線時，您可以使用預先定義安全政策或自訂安全政策。您必須在負載平衡器上部署 SSL 憑證。負載平衡器使用此憑證終止連接，然後解密用戶端的請求，再將它們傳送到執行個體。負載平衡器將靜態加密套件用於後端連線。您可以選擇性地選擇在您的執行個體啟用身分驗證。

Classic Load Balancer 不支援伺服器名稱指示 (SNI)。您可以改用下列其中一個替代選項：
+ 在負載平衡器上部署一個憑證，並為每個額外的網站新增 Subject Alternative Name (SAN)。SAN 可讓您使用單一憑證保護多個主機名稱。請向您的憑證供應商洽詢有關每個憑證支援的 SAN 數量，以及如何新增和移除 SAN 的詳細資訊。
+ 針對前端和後端連線使用連接埠 443 的 TCP 接聽程式。負載平衡器會依現狀傳遞請求，因此您可以處理 EC2 執行個體上的 HTTPS 終止作業。

Classic Load Balancer 不支援相互 TLS 驗證 (mTLS)。如需 mTLS 支援，請建立 TCP 接聽程式。負載平衡器會依現狀傳遞請求，因此您可以在 EC2 執行個體上實作 mTLS。

**Topics**
+ [SSL/TLS 憑證](ssl-server-cert.md)
+ [SSL 溝通組態](elb-ssl-security-policy.md)
+ [預先定義的 SSL 安全政策](elb-security-policy-table.md)
+ [建立 HTTPS 負載平衡器](elb-create-https-ssl-load-balancer.md)
+ [設定 HTTPS 接聽程式](elb-add-or-delete-listeners.md)
+ [更換 SSL 憑證](elb-update-ssl-cert.md)
+ [更新 SSL 組態檔案](ssl-config-update.md)

# Classic Load Balancer 的 SSL/TLS 憑證
<a name="ssl-server-cert"></a>

若您對前端接聽程式使用 HTTPS (SSL 或 TLS)，您必須在負載平衡器上部署 SSL/TLS 憑證。負載平衡器使用此憑證終止連接，然後解密用戶端的請求，再將它們傳送到執行個體。

SSL 和 TLS 通訊協定使用 X.509 憑證 (SSL/TLS 伺服器憑證) 以驗證用戶端和後端應用程式。X.509 憑證是憑證授權機構 (CA) 發出的數位身分證，其中包含識別資訊、有效期間、公有金鑰、序號和發行機構的數位簽章。

您可以使用 AWS Certificate Manager 或支援 SSL 和 TLS 通訊協定的工具來建立憑證，例如 OpenSSL。當您為負載平衡器建立或更新 HTTPS 接聽程式時，您將會指定此憑證。建立憑證以搭配您的負載平衡器使用時，您必須指定網域名稱。

建立憑證以搭配您的負載平衡器使用時，您必須指定網域名稱。憑證上的網域名稱必須與自訂網域名稱記錄相符。如果它們不相符，流量將不會得到加密，因為無法驗證 TLS 連線。

您必須為憑證指定完整網域名稱 (FQDN)，例如 `www.example.com`；或者指定 apex 網域名稱 (FQDN)，例如 `example.com`。您也可以使用星號 (\$1) 做為萬用字元，以保護相同網域中的多個網站名稱。請求萬用字元憑證時，星號 (\$1) 必須在網域名稱的最左方，而且僅能保護一個子網域層級。例如，`*.example.com` 保護 `corp.example.com` 和 `images.example.com`，但它無法保護 `test.login.example.com`。另請注意，`*.example.com` 只可以保護 `example.com` 的子網域，無法保護 bare 或 apex 網域 (`example.com`)。萬用字元名稱會顯示於 ACM 憑證的**主體**欄位和憑證的**主體別名**延伸。如需公有憑證的詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[請求公有憑證](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console)。

## 使用 建立或匯入 SSL/TLS 憑證 AWS Certificate Manager
<a name="create-certificate-acm"></a>

建議您使用 AWS Certificate Manager (ACM) 為您的負載平衡器建立或匯入憑證。ACM 會與 Elastic Load Balancing 整合，以便您在負載平衡器上部署憑證。若要在負載平衡器上部署憑證，此憑證必須位於和負載平衡器同一個區域。如需詳細資訊，請參閱《*AWS Certificate Manager 使用者指南*》中的[請求公有憑證](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)或[匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)。

若要允許使用者使用 AWS 管理主控台在負載平衡器上部署憑證，您必須允許存取 ACM `ListCertificates` API 動作。如需詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[列出憑證](https://docs.aws.amazon.com/acm/latest/userguide/security_iam_id-based-policy-examples.html#policy-list-certificates)。

**重要**  
您不能透過與 ACM 的整合，在您的負載平衡器上安裝具有 4096 位元 RSA 金鑰或 EC 金鑰的憑證。您必須將具有 4096 位元 RSA 金鑰或 EC 金鑰的憑證上傳至 IAM，才能使用它們搭配您的負載平衡器。

## 使用 IAM 匯入 SSL/TLS 憑證
<a name="import-certificate-iam"></a>

如果您未使用 ACM，則可以使用 SSL/TLS 工具 例如 OpenSSL) 建立憑證簽署請求 (CSR)、取得由 CA 簽署的憑證以產生 CSR，並上傳憑證至 IAM。如需詳細資訊，請參閱 *IAM 使用者指南*中的[使用伺服器憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)。

# Classic Load Balancer 的 SSL 溝通組態
<a name="elb-ssl-security-policy"></a>

Elastic Load Balancing 使用 Secure Sockets Layer (SSL) 交涉組態 (稱為*安全政策*)，在用戶端與負載平衡器之間交涉 SSL 連線。安全政策結合 SSL 通訊協定、SSL 加密及伺服器優先順序選項。如需有關設定負載平衡器的 SSL 連線的詳細資訊，請參閱[Classic Load Balancer 的接聽程式](elb-listener-config.md)。

**Topics**
+ [安全政策](#security-policy-types)
+ [SSL 通訊協定](#ssl-protocols)
+ [伺服器優先順序](#server-order-preference)
+ [SSL 加密](#ssl-ciphers)
+ [後端連線的加密套件](#elb-backend-cipher-suite)

## 安全政策
<a name="security-policy-types"></a>

在用戶端和負載平衡器之間 SSL 交涉期間，安全政策決定支援哪些加密方式和通訊協定。您可以設定 Classic Load Balancer 使用預先定義或自訂安全政策。

請注意， AWS Certificate Manager (ACM) 提供的憑證包含 RSA 公有金鑰。因此，如果您使用 ACM 提供的憑證，您必須在安全政策中包含使用 RSA 的加密套件，否則 TLS 連線失敗。

**預先定義的安全政策**  
最新的預先定義安全政策名稱包含根據年和月發佈的版本資訊。例如，預設的預先定義安全政策為 `ELBSecurityPolicy-2016-08`。每當發佈新的預先定義安全政策時，您可以更新設定以使用它。

如需為預先定義安全政策啟用通訊協定和加密的相關詳細資訊，請參閱[Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

**自訂安全政策**  
您可以建立含所需的加密方式和通訊協定的自訂溝通組態。舉例來說，有些安全合規標準 (例如 PCI 和 SOC) 可能需要一組特定的通訊協定和加密方式，以確保符合安全標準。在這種情況下，您可以建立自訂安全政策以符合這些標準。

如需建立自訂安全政策的詳細資訊，請參閱[更新 Classic Load Balancer 的 SSL 溝通組態](ssl-config-update.md)。

## SSL 通訊協定
<a name="ssl-protocols"></a>

*SSL 通訊協定*會在用戶端與伺服器之間建立安全連線，並確保在用戶端與負載平衡器之間傳遞的所有資料為私有。

Secure Sockets Layer (SSL) 和 Transport Layer Security (TLS) 是用於加密機密資料的加密通訊協定 (透過安全網路，例如網際網路)。TLS 通訊協定是較新版本的 SSL 協定。在 Elastic Load Balancing 文件中，我們同時將SSL 和 TLS 通訊協定指為 SSL 通訊協定。

**建議的通訊協定**  
建議使用 TLS 1.2，其用於 ELBSecurityPolicy-TLS-1-2-2017-01 預先定義的安全政策中。也可以在自訂安全政策中使用 TLS 1.2。預設安全政策支援 TLS 1.2 和更早版本的 TLS，因此其安全性低於 ELBSecurityPolicy-TLS-1-2-2017-01。

**已廢除的通訊協定**  
如果之前已在自訂政策中啟用 SSL 2.0 通訊協定，則建議您將安全政策更新至預先定義的安全政策之一。

## 伺服器優先順序
<a name="server-order-preference"></a>

Elastic Load Balancing 支援適用於用戶端和負載平衡器之間溝通連線的*伺服器優先順序*選項。在 SSL 連線交涉程序期間，用戶端與負載平衡器會出示它們分別支援的加密和通訊協定的清單 (以偏好的順序)。在預設情況下，將針對 SSL 安全連線選取用戶端清單上符合任何負載平衡器加密的第一個加密。如果負載平衡器設定為支援伺服器優先順序，則該負載平衡器會在清單中 (亦即用戶端加密清單) 選擇第一個加密。這可確保負載平衡器決定將加密用於 SSL 連線。如果您不啟用伺服器優先順序，用戶端顯示的加密順序是用於溝通用戶端和負載平衡器之間的連線。

## SSL 加密
<a name="ssl-ciphers"></a>

*SSL 加密*是一項加密演算法，使用加密金鑰來建立編碼的訊息。SSL 通訊協定使用數個 SSL 密碼透過網際網路為資料加密。

請注意， AWS Certificate Manager (ACM) 提供的憑證包含 RSA 公有金鑰。因此，如果您使用 ACM 提供的憑證，您必須在安全政策中包含使用 RSA 的加密套件，否則 TLS 連線失敗。

Elastic Load Balancing 支援下列可與 Classic Load Balancer 搭配使用的加密方式。這些密碼的子集會使用預先定義的 SSL 政策。所有這些加密方式可用於自訂政策。我們建議您使用僅使用包含在預設安全政策 (加星號者) 的加密方式。許多其他加密方式並不安全，應自擔風險來使用。

**加密方式**
+ ECDHE-ECDSA-AES128-GCM-SHA256 \$1
+ ECDHE-RSA-AES128-GCM-SHA256 \$1
+ ECDHE-ECDSA-AES128-SHA256 \$1
+ ECDHE-RSA-AES128-SHA256 \$1
+ ECDHE-ECDSA-AES128-SHA \$1
+ ECDHE-RSA-AES128-SHA \$1
+ DHE-RSA-AES128-SHA
+ ECDHE-ECDSA-AES256-GCM-SHA384 \$1
+ ECDHE-RSA-AES256-GCM-SHA384 \$1
+ ECDHE-ECDSA-AES256-SHA384 \$1
+ ECDHE-RSA-AES256-SHA384 \$1
+ ECDHE-RSA-AES256-SHA \$1
+ ECDHE-ECDSA-AES256-SHA \$1
+ AES128-GCM-SHA256 \$1
+ AES128-SHA256 \$1
+ AES128-SHA \$1
+ AES256-GCM-SHA384 \$1
+ AES256-SHA256 \$1
+ AES256-SHA \$1
+ DHE-DSS-AES128-SHA
+ CAMELLIA128-SHA
+ EDH-RSA-DES-CBC3-SHA
+ DES-CBC3-SHA
+ ECDHE-RSA-RC4-SHA
+ RC4-SHA
+ ECDHE-ECDSA-RC4-SHA
+ DHE-DSS-AES256-GCM-SHA384
+ DHE-RSA-AES256-GCM-SHA384
+ DHE-RSA-AES256-SHA256
+ DHE-DSS-AES256-SHA256
+ DHE-RSA-AES256-SHA
+ DHE-DSS-AES256-SHA
+ DHE-RSA-CAMELLIA256-SHA
+ DHE-DSS-CAMELLIA256-SHA
+ CAMELLIA256-SHA
+ EDH-DSS-DES-CBC3-SHA
+ DHE-DSS-AES128-GCM-SHA256
+ DHE-RSA-AES128-GCM-SHA256
+ DHE-RSA-AES128-SHA256
+ DHE-DSS-AES128-SHA256
+ DHE-RSA-CAMELLIA128-SHA
+ DHE-DSS-CAMELLIA128-SHA
+ ADH-AES128-GCM-SHA256
+ ADH-AES128-SHA
+ ADH-AES128-SHA256
+ ADH-AES256-GCM-SHA384
+ ADH-AES256-SHA
+ ADH-AES256-SHA256
+ ADH-CAMELLIA128-SHA
+ ADH-CAMELLIA256-SHA
+ ADH-DES-CBC3-SHA
+ ADH-DES-CBC-SHA
+ ADH-RC4-MD5
+ ADH-SEED-SHA
+ DES-CBC-SHA
+ DHE-DSS-SEED-SHA
+ DHE-RSA-SEED-SHA
+ EDH-DSS-DES-CBC-SHA
+ EDH-RSA-DES-CBC-SHA
+ IDEA-CBC-SHA
+ RC4-MD5
+ SEED-SHA
+ DES-CBC3-MD5
+ DES-CBC-MD5
+ RC2-CBC-MD5
+ PSK-AES256-CBC-SHA
+ PSK-3DES-EDE-CBC-SHA
+ KRB5-DES-CBC3-SHA
+ KRB5-DES-CBC3-MD5
+ PSK-AES128-CBC-SHA
+ PSK-RC4-SHA
+ KRB5-RC4-SHA
+ KRB5-RC4-MD5
+ KRB5-DES-CBC-SHA
+ KRB5-DES-CBC-MD5
+ EXP-EDH-RSA-DES-CBC-SHA
+ EXP-EDH-DSS-DES-CBC-SHA
+ EXP-ADH-DES-CBC-SHA
+ EXP-DES-CBC-SHA
+ EXP-RC2-CBC-MD5
+ EXP-KRB5-RC2-CBC-SHA
+ EXP-KRB5-DES-CBC-SHA
+ EXP-KRB5-RC2-CBC-MD5
+ EXP-KRB5-DES-CBC-MD5
+ EXP-ADH-RC4-MD5
+ EXP-RC4-MD5
+ EXP-KRB5-RC4-SHA
+ EXP-KRB5-RC4-MD5

\$1 這些是預設安全政策 ELBSecurityPolicy-2016-08 中包含的密碼。

## 後端連線的加密套件
<a name="elb-backend-cipher-suite"></a>

Classic Load Balancer 使用靜態密碼套件進行後端連線。如果您的 Classic Load Balancer 和已註冊的執行個體無法交涉連線，請包含下列其中一個密碼。
+ AES256-GCM-SHA384
+ AES256-SHA256
+ AES256-SHA
+ CAMELLIA256-SHA
+ AES128-GCM-SHA256
+ AES128-SHA256
+ AES128-SHA
+ CAMELLIA128-SHA
+ RC4-SHA
+ DES-CBC3-SHA
+ DES-CBC-SHA
+ DHE-DSS-AES256-GCM-SHA384
+ DHE-RSA-AES256-GCM-SHA384
+ DHE-RSA-AES256-SHA256
+ DHE-DSS-AES256-SHA256
+ DHE-RSA-AES256-SHA
+ DHE-DSS-AES256-SHA
+ DHE-RSA-CAMELLIA256-SHA
+ DHE-DSS-CAMELLIA256-SHA
+ DHE-DSS-AES128-GCM-SHA256
+ DHE-RSA-AES128-GCM-SHA256
+ DHE-RSA-AES128-SHA256
+ DHE-DSS-AES128-SHA256
+ DHE-RSA-AES128-SHA
+ DHE-DSS-AES128-SHA
+ DHE-RSA-CAMELLIA128-SHA
+ DHE-DSS-CAMELLIA128-SHA
+ EDH-RSA-DES-CBC3-SHA
+ EDH-DSS-DES-CBC3-SHA
+ EDH-RSA-DES-CBC-SHA
+ EDH-DSS-DES-CBC-SHA

# Classic Load Balancer 適用的預先定義 SSL 安全政策
<a name="elb-security-policy-table"></a>

您可以為 HTTPS/SSL 接聽程式選擇其中一個預先定義安全政策。您可以使用其中一個 `ELBSecurityPolicy-TLS` 政策來符合規範及安全標準，其需要停用某些特定 TLS 通訊協定版本。或者，您也可以建立自訂安全政策。如需詳細資訊，請參閱[更新 SSL 組態檔案](ssl-config-update.md)。

RSA 和 DSA 為基礎的加密方式是專用於建立 SSL 憑證的簽署演算法。請務必使用簽署演算法來建立 SSL 憑證，此方法是根據您的安全政策而啟用的加密方式。

如果您選擇的政策已針對伺服器優先順序而啟用，負載平衡器會依此處指定的順序使用加密方式來溝通協調用戶端和負載平衡器之間的連線。否則，負載平衡器會依用戶端列出的順序使用加密。



下列各節說明 Classic Load Balancer 的最新預先定義安全政策，包括其啟用的 SSL 通訊協定和 SSL 密碼。您也可以使用 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來描述預先定義的政策。

**提示**  
此資訊僅適用於 Classic Load Balancer。如需適用於其他負載平衡器的資訊，請參閱 [ Application Load Balancer 的安全政策](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html)，以及 [Network Load Balancer 的安全政策](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html)。

**Topics**
+ [依政策的通訊協定](#tls-protocols)
+ [依政策的 Ciphers](#tls-policy-ciphers)
+ [依密碼排列的政策](#tls-cipher-policies)

## 依政策的通訊協定
<a name="tls-protocols"></a>

下表說明每個安全政策支援的 TLS 通訊協定。


| 安全政策 | TLS 1.2 | TLS 1.1 | TLS 1.0 | 
| --- | --- | --- | --- | 
| ELBSecurityPolicy-TLS-1-2-2017-01 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/negative_icon.svg) 否 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/negative_icon.svg) 否 | 
| ELBSecurityPolicy-TLS-1-1-2017-01 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/negative_icon.svg) 否 | 
| ELBSecurityPolicy-2016-08 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | 
| ELBSecurityPolicy-2015-05 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | 
| ELBSecurityPolicy-2015-03 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | 
| ELBSecurityPolicy-2015-02 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/images/success_icon.svg) 是 | 

## 依政策的 Ciphers
<a name="tls-policy-ciphers"></a>

下表說明每個安全政策支援的加密。


| 安全政策 | 加密方式 | 
| --- | --- | 
| ELBSecurityPolicy-TLS-1-2-2017-01 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-TLS-1-1-2017-01 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2016-08 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-05 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-03 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-02 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 

## 依密碼排列的政策
<a name="tls-cipher-policies"></a>

下表說明支援每個密碼的安全政策。


| 密碼名稱 | 安全政策 | 密碼套件 | 
| --- | --- | --- | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-GCM-SHA256 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02b | 
|  **OpenSSL** – ECDHE-RSA-AES128-GCM-SHA256 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02f | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-SHA256 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c023 | 
|  **OpenSSL** – ECDHE-RSA-AES128-SHA256 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c027 | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-SHA **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c009 | 
|  **OpenSSL** – ECDHE-RSA-AES128-SHA **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c013 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-GCM-SHA384 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02c | 
|  **OpenSSL** – ECDHE-RSA-AES256-GCM-SHA384 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c030 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-SHA384 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c024 | 
|  **OpenSSL** – ECDHE-RSA-AES256-SHA384 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c028 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-SHA **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c014 | 
|  **OpenSSL** – ECDHE-RSA-AES256-SHA **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c00a | 
|  **OpenSSL** – AES128-GCM-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 9c | 
|  **OpenSSL** – AES128-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 3c | 
|  **OpenSSL** – AES128-SHA **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 2f | 
|  **OpenSSL** – AES256-GCM-SHA384 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 9d | 
|  **OpenSSL** – AES256-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 3d | 
|  **OpenSSL** – AES256-SHA **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 35 | 
|  **OpenSSL** – DHE-RSA-AES128-SHA **IANA** – TLS\$1DHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 33 | 
|  **OpenSSL** – DHE-DSS-AES128-SHA **IANA** – TLS\$1DHE\$1DSS\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 32 | 
|  **OpenSSL** – DES-CBC3-SHA **IANA** – TLS\$1RSA\$1WITH\$13DES\$1EDE\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 0a | 

# 使用 HTTPS 接聽程式建立 Classic Load Balancer
<a name="elb-create-https-ssl-load-balancer"></a>

用戶端採用來自用戶端的請求，並將它們的分佈到已向負載平衡器註冊的 EC2 執行個體。

您可以建立一個會監聽這兩種 HTTP (80) 和 HTTPS (443) 連接埠的負載平衡器。如果您指定 HTTPS 接聽程式傳送請求到連接埠 80 上的執行個體，則負載平衡器會終止請求，而且不加密從負載平衡器到執行個體的通訊。如果 HTTPS 接聽程式傳送請求到連接埠 443 上的執行個體，便會將從負載平衡器到執行個體的通訊加密。

如果您的負載平衡器使用已加密的連線來與執行個體通訊，您就可以選擇性啟用執行個體的身分驗證。這可確保負載平衡器僅與執行個體通訊，若其公有金鑰符合您為此目的而指定到負載平衡器的金鑰的話。

如需有關新增 HTTPS 接聽程式至現有的負載平衡器的詳細資訊，請參閱[設定 Classic Load Balancer 的 HTTPS 接聽程式](elb-add-or-delete-listeners.md)。

**Topics**
+ [先決條件](#elb-https-ssl-prerequisites)
+ [使用主控台建立 HTTPS 負載平衡器](#create-https-lb-console)
+ [使用 建立 HTTPS 負載平衡器 AWS CLI](#create-https-lb-clt)

## 先決條件
<a name="elb-https-ssl-prerequisites"></a>

在開始使用之前，請確認您已符合以下必要條件：
+ 完成「[VPC 的建議](elb-backend-instances.md#set-up-ec2)」中的步驟。
+ 啟動您計劃向負載平衡器註冊的 EC2 執行個體。這些執行個體的安全群組必須允許負載平衡器的流量。
+ EC2 執行個體必須回應具 HTTP 狀態碼 200的運作狀態檢查的目標。如需詳細資訊，請參閱[Classic Load Balancer 執行個體的運作狀態檢查](elb-healthchecks.md)。
+ 如果您計劃在 EC2 執行個體上啟用持續作用選項，建議您將持續作用至少設定為負載平衡器的閒置逾時設定。若您想要確保負載平衡器負責關閉您的執行個體連線，請確保持續連線時間適用之執行個體上的值集大於您的負載平衡器上的閒置逾時設定。如需詳細資訊，請參閱[為 Classic Load Balancer 設定閒置連線逾時](config-idle-timeout.md)。
+ 若是建立安全接聽程式，您必須在您的負載平衡器上部署 SSL/TLS 伺服器憑證。負載平衡器使用此憑證以終止然後解密請求，再將它們傳送到執行個體。若您沒有 SSL 憑證，您可以建立一個。如需詳細資訊，請參閱[Classic Load Balancer 的 SSL/TLS 憑證](ssl-server-cert.md)。

## 使用主控台建立 HTTPS 負載平衡器
<a name="create-https-lb-console"></a>

在此範例中，您為負載平衡器設定兩個接聽程式。第一個接聽程式接受連接埠 80 上的 HTTP 請求，並將其傳送到連接埠 80 上使用 HTTP 的執行個體。第二個接聽程式接受連接埠 443 上的 HTTPS，並將其傳送到連接埠 80 上使用 HTTP 的執行個體 (如果您想要設定後端執行個體驗證，則使用連接埠 443 上的 HTTPS)。

*接聽程式*是檢查連線請求的程序。它是透過一個前端 (用戶端到負載平衡器) 連線的協定和連接埠，以及一個後端 (負載平衡器到執行個體) 連線的協定和連接埠進行設定。如需有關 Elastic Load Balancing 支援的連接埠、通訊協定和接聽程式組態的詳細資訊，請參閱 [Classic Load Balancer 的接聽程式](elb-listener-config.md)。

**使用主控台建立安全的 Classic Load Balancer**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 於導覽列上，為負載平衡器選擇一個區域。請務必選取您為 EC2 執行個體選取的同一區域。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

1. 選擇 **Create Load Balancer (建立負載平衡器)**。

1. 展開 **Classic Load Balancer** 區段，然後選擇**建立**。

1. **基本組態**

   1. 針對**負載平衡器名稱**，輸入負載平衡器的名稱。

      在區域的 Classic Load Balancer 組合中，您的 Classic Load Balancer 名稱必須獨一無二，其字元數上限為 32 個，只能包含英數字元與連字號，但開頭或結尾都不可為連字號。

   1. 針對**結構描述**，選取**面向網際網路**。

1. **網路映射**

   1. 針對 **VPC**，選取與您執行個體相同的 VPC。

   1. 針對**映射**，先選取可用區域，然後從可用子網路中選擇公有子網路。一個可用區域只能選取一個子網路。為了提高您的負載平衡器可用性，可選取一個以上的可用區域和子網路。

1. **安全群組**

   1. 針對**安全群組**，請選取設定為在連接埠 80 上允許必要的 HTTP 流量，並在連接埠 443 上允許 HTTPS 流量的現有安全群組。

     如果沒有安全群組符合條件，您可以建立擁有必要規則的新安全群組。

1. **接聽程式和路由**

   1. 保留預設接聽程式的預設設定，然後選取**新增接聽程式**。

   1. 針對新接聽程式上的**接聽程式**，請選取 `HTTPS` 做為通訊協定，然後連接埠會更新為 `443`。根據預設，**執行個體**會在連接埠 `80` 上使用 `HTTP` 通訊協定。

   1. 如果需要執行後端身分驗證，請將**執行個體**通訊協定變更為 `HTTPS`。這也會將**執行個體**連接埠更新為 `443`

1. **安全接聽程式設定**

   當您對前端接聽程式使用 HTTPS 或 SSL，您必須在負載平衡器上部署 SSL 憑證。負載平衡器使用此憑證終止連接，然後解密用戶端的請求，再將它們傳送到執行個體。您也必須指定安全政策。Elastic Load Balancing 提供具有預先定義之 SSL 溝通組態的安全政策，或可建立您自己的自訂安全政策。如果您在後端連線設定 HTTPS/SSL，您可以為您的執行個體啟用身分驗證。

   1. 針對**安全政策**，我們建議您一律使用最新的預先定義安全政策，或建立自訂政策。查看[更新 SSL 溝通組態](ssl-config-update.md#ssl-config-update-console)。

   1. 針對**預設 SSL/TLS 憑證**，有下列選項可用：
      + 如果您使用 建立或匯入憑證 AWS Certificate Manager，請選取**從 ACM**，然後從選取憑證**中選取憑證**。
      + 如果您使用 IAM 匯入憑證，請選取**從 IAM**，然後從**選取憑證**處選取您的憑證。
      + 如果您想匯入憑證，但您的區域無法使用 ACM，請依序選取**匯入**和**到 IAM**。在**憑證名稱**欄位輸入憑證名稱。在**憑證私有金鑰**中，複製並貼上私有金鑰檔案的內容 (PEM 編碼)。在**憑證內文**中，複製並貼上公有金鑰憑證檔案的內容 (PEM 編碼)。在 **Certificate Chain** (憑證鏈) 中，將憑證鏈檔案的內容 (PEM 編碼) 複製並貼上，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。

   1. (選用) 如果您設定 HTTPS 接聽程式為使用加密的連線與執行個體通訊，您可以選擇性地在**後端身分驗證憑證**中設定執行個體的身分驗證。
**注意**  
如果您沒有看到**後端身分驗證憑證**區段，請返回**接聽程式和路由**，然後選取 `HTTPS` 做為**執行個體**的通訊協定。

      1. 針對 **Certificate name (憑證名稱)**，輸入公有金鑰憑證的名稱。

      1. 針對**憑證內文 (PEM 編碼)**，請複製並貼上憑證的內容。如果公有金鑰符合此金鑰，負載平衡器只會與執行個體通訊。

      1. 若要新增另一個憑證，請選擇**新增後端憑證**。最多五個憑證。

1. **運作狀態檢查**

   1. 在 **Ping 目標**區段中，選取 **Ping 通訊協定**和 **Ping 連接埠**。您的 EC2 執行個體必須接受指定 Ping 連接埠上的流量。

   1. 針對 **Ping 連接埠**，請確定連接埠為 `80`。

   1. 針對 **Ping 路徑**，請將預設值取代為單一政協線 (`/`)。這會告知 Elastic Load Balancing 將運作狀態檢查請求傳送給您 Web 伺服器的預設首頁，例如 `index.html`。

   1. 針對**進階運作狀態檢查設定**，請使用預設值。

1. **執行個體**

   1. 選取**新增執行個體**以開啟執行個體選取畫面。

   1. 在**可用執行個體**下方，您可以根據先前選取的網路設定，選取目前可用於負載平衡器的執行個體。

   1. 當您對您的選項感到滿意時，請選取**確認**，將要註冊的執行個體新增至負載平衡器。

1. **Attributes**

   1. 針對**啟用跨區域負載平衡**、**啟用連接耗盡**和**逾時 (耗盡間隔)**，請保留預設值。

1. **負載平衡器標籤 (選用)**

   1. **索引鍵**欄位為必填。

   1. **值**欄位為選填。

   1. 若要新增另一個標籤，請選取**新增標籤**，然後輸入**索引鍵**欄位值，並選擇性地填寫**值**欄位。

   1. 若要移除現有的標籤，請在要移除的標籤旁選取**移除**。

1. **摘要和建立**

   1. 如果您需要變更任何設定，請在需要變更的設定旁選取**編輯**。

   1. 如果您對摘要中顯示的所有設定感到滿意，請選取**建立負載平衡器**，開始建立您的負載平衡器。

   1. 在最終建立頁面上選取**檢視負載平衡器**，即可在 Amazon EC2 主控台中檢視您的負載平衡器。

1. **確認**

   1. 選取新的負載平衡器。

   1. 在**目標執行個體**索引標籤中，檢查**運作狀態**欄位。至少有一個 EC2 執行個體在**服務中**之後，您可以測試負載平衡器。

   1. 在**詳細資訊**區段中複製負載平衡器的 **DNS 名稱**，此名稱看起來會類似 `my-load-balancer-1234567890.us-east-1.elb.amazonaws.com`。

   1. 將負載平衡器的 **DNS 名稱**貼至已連接公有網際網路的 Web 瀏覽器的網址欄位。如果負載平衡器運作正常，您會看到伺服器的預設頁面。

1. **刪除 (選用)**

   1. 若您的網域有指向負載平衡器的 CNAME 記錄，請指向新位置並等待 DNS 變更發生效用，之後再刪除負載平衡器。

   1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

   1. 選取負載平衡器。

   1. 選擇**動作**、**刪除負載平衡器**。

   1. 出現確認提示時，請輸入 `confirm`，然後選取**刪除**。

   1. 刪除負載平衡器後，透過該負載平衡器註冊的 EC2 執行個體會繼續執行。系統將根據執行個體繼續執行的時間，按每小時或不足一小時的時數計費。當您不再需要某個 EC2 執行個體時，可以停止或終止該執行個體，避免產生額外費用。

## 使用 建立 HTTPS 負載平衡器 AWS CLI
<a name="create-https-lb-clt"></a>

使用以下指示，使用 AWS CLI建立 HTTPS/SSL 負載平衡器。

**Topics**
+ [步驟 1：設定接聽程式](#configuring_listener_clt)
+ [步驟 2：設定 SSL 安全政策](#configure_ciphers_clt)
+ [步驟 3：設定後端執行個體身分驗證 (選用)](#configure_backendauth_clt)
+ [步驟 4：設定運作狀態檢查(選用)](#configure_healthcheck_clt)
+ [步驟 5：註冊 EC2 執行個體](#add_ec2instances_clt)
+ [步驟 6：驗證執行個體](#verify-ec2instances-clt)
+ [步驟 7：刪除負載平衡器 (選用)](#us-tearing-lb-cli)

### 步驟 1：設定接聽程式
<a name="configuring_listener_clt"></a>

*接聽程式*是檢查連線請求的程序。它是透過一個前端 (用戶端到負載平衡器) 連線的協定和連接埠，以及一個後端 (負載平衡器到執行個體) 連線的協定和連接埠進行設定。如需有關 Elastic Load Balancing 支援的連接埠、通訊協定和接聽程式組態的詳細資訊，請參閱 [Classic Load Balancer 的接聽程式](elb-listener-config.md)。

在這個範例中，您為負載平衡器設定兩個接聽程式，做法是指定連接埠和通訊協定以用於前端和後端連線。第一個接聽程式接受連接埠 80 上的 HTTP 請求，並將請求傳送到連接埠 80 上使用 HTTP 的執行個體。第二個接聽程式接受連接埠 443 上的 HTTPS 請求，並將請求傳送到連接埠 80 上使用 HTTP 的執行個體。

由於第二個接聽程式使用 HTTPS 管理連線的前端伺服器，您必須在負載平衡器上部署 SSL 伺服器憑證。負載平衡器使用此憑證以終止然後解密請求，再將它們傳送到執行個體。

**設定負載平衡器的接聽程式。**

1. 取得 SSL 憑證的 Amazon Resource Name (ARN)。例如：

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 使用以下 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer.html) 命令來建立具有兩個接聽程式的負載平衡器：

   ```
   aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80" "Protocol=https,LoadBalancerPort=443,InstanceProtocol=http,InstancePort=80,SSLCertificateId="ARN" --availability-zones us-west-2a
   ```

   以下是回應範例：

   ```
   {
     "DNSName": "my-loadbalancer-012345678.us-west-2.elb.amazonaws.com"
   }
   ```

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來檢視您的負載平衡器的詳細資訊：

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

### 步驟 2：設定 SSL 安全政策
<a name="configure_ciphers_clt"></a>

您可以選擇一個預先定義的安全政策，或可建立自己的自訂安全政策。否則，Elastic Load Balancing 會使用預設的預先定義安全政策 `ELBSecurityPolicy-2016-08` 來設定您的負載平衡器。如需詳細資訊，請參閱[Classic Load Balancer 的 SSL 溝通組態](elb-ssl-security-policy.md)。

**確認您的負載平衡器與預設安全政策相關聯**  
使用以下 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令：

```
aws elb describe-load-balancers --load-balancer-name my-loadbalancer
```

以下是回應範例。請注意，`ELBSecurityPolicy-2016-08` 與連接埠 443 的負載平衡器相關聯。

```
{
    "LoadBalancerDescriptions": [
        {
            ...
            "ListenerDescriptions": [
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "SSLCertificateId": "ARN", 
                        "LoadBalancerPort": 443, 
                        "Protocol": "HTTPS", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": [
                        "ELBSecurityPolicy-2016-08"
                    ]
                }, 
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "LoadBalancerPort": 80, 
                        "Protocol": "HTTP", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": []
                }
            ],
            ...
        }
    ]
}
```

如果您願意，您可以為您的負載平衡器設定 SSL 安全政策，而不是使用預設的安全政策。

**(選用) 使用預先定義的 SSL 安全政策**

1. 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令，列出預先定義的安全政策的名稱：

   ```
   aws elb describe-load-balancer-policies
   ```

   如需有關為預先定義安全政策的組態的詳細資訊，請參閱[Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用其中一個預先定義安全政策的 SSL 溝通政策，如之前步驟所述：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=predefined-policy
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已啟用的政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   以下是範例回應，其顯示政策在連接埠 443 上啟用。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

當您建立自訂安全政策，您必須至少啟用一個通訊協定，和一個加密方式。DSA 和 RSA 加密方式是專用於建立 SSL 憑證的簽署演算法。如果您已有 SSL 憑證，請務必啟用用於建立您的憑證的加密方式。您的自訂政策名稱不得以 `ELBSample-` 或 `ELBSecurityPolicy-` 開頭，因為這些字首是預留給預先定義安全政策的名稱使用。

**(選用) 使用自訂 SSL 安全政策**

1. 使用 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用自訂安全政策的 SSL 溝通政策。例如：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已啟用的政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   以下是範例回應，其顯示政策在連接埠 443 上啟用。

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

### 步驟 3：設定後端執行個體身分驗證 (選用)
<a name="configure_backendauth_clt"></a>

如果您在後端連線設定 HTTPS/SSL，您可以選擇性設定執行個體的身分驗證。

當您設定後端執行個體身分驗證時，會建立公有金鑰政策。接著，您會使用這個公有金鑰政策來建立後端執行個體身分驗證政策。最後，您使用 HTTPS 通訊協定的執行個體連接埠來設定後端執行個體驗證政策。

只有在執行個體提供給負載平衡器的公有金鑰符合您的負載平衡器身分驗證政策的公有金鑰時，負載平衡器才會與執行個體通訊。

**設定後端執行個體身分驗證**

1. 使用下列命令來擷取公有金鑰：

   ```
   openssl x509 -in your X509 certificate PublicKey -pubkey -noout
   ```

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立公有金鑰政策：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-PublicKey-policy \
   --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   ```
**注意**  
若要指定 `--policy-attributes` 的公有金鑰值，請移除第一個和最後一行公有金鑰 (該行各包含`-----BEGIN PUBLIC KEY-----` 和 `-----END PUBLIC KEY-----`)。 AWS CLI 不接受 中的空格字元`--policy-attributes`。

1. 使用以下 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用 `my-PublicKey-policy` 的後端執行個體驗證政策。

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy
   ```

   您可以選擇性使用多個公有金鑰政策。負載平衡器嘗試所有金鑰，一次一個。如果執行個體提供的公有金鑰符合這些公有金鑰的其中一個，該執行個體會被驗證。

1. 使用下列 [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 命令將 `my-authentication-policy` 設定為 HTTPS 的執行個體連接埠。在此範例中，執行個體連接埠為 443。

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令列出負載平衡器的所有政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
   ```

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來檢視政策的詳細資訊：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-names my-authentication-policy
   ```

### 步驟 4：設定運作狀態檢查(選用)
<a name="configure_healthcheck_clt"></a>

Elastic Load Balancing 會根據您設定的運作狀態檢查，定期檢查每個註冊的 EC2 執行個體的運作狀態。如果 Elastic Load Balancing 找到運作狀態不佳的執行個體，則會停止將流量傳送至執行個體，並將流量路由至運作狀態良好的執行個體。如需詳細資訊，請參閱[Classic Load Balancer 執行個體的運作狀態檢查](elb-healthchecks.md)。

當您建立您的負載平衡器，Elastic Load Balancing 會使用預設的運作狀態檢查設定。如果您願意，您可以為您的負載平衡器變更運作狀態檢查組態，而不是使用預設的設定。

**設定執行個體的運作狀態檢查**  
使用以下 [Configure Health Check (設定運作狀態檢查)](https://docs.aws.amazon.com/cli/latest/reference/elb/configure-health-check.html) 命令：

```
aws elb configure-health-check --load-balancer-name my-loadbalancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3
```

以下是回應範例：

```
{
    "HealthCheck": {
        "HealthyThreshold": 2,
        "Interval": 30,
        "Target": "HTTP:80/ping",
        "Timeout": 3,
        "UnhealthyThreshold": 2
    }
}
```

### 步驟 5：註冊 EC2 執行個體
<a name="add_ec2instances_clt"></a>

建立負載平衡器之後，必須在負載平衡器註冊 EC2 執行個體。您可以從相同區域內的單一可用區域或多個可用區域選擇 EC2 執行個體，做為負載平衡器。如需詳細資訊，請參閱[Classic Load Balancer 的註冊執行個體](elb-backend-instances.md)。

使用 [register-instances-with-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/register-instances-with-load-balancer.html) 命令，如下所示：

```
aws elb register-instances-with-load-balancer --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下是回應範例：

```
{
    "Instances": [
        {
            "InstanceId": "i-4f8cf126"
        },
        {
            "InstanceId": "i-0bb7ca62"
        }
    ]
}
```

### 步驟 6：驗證執行個體
<a name="verify-ec2instances-clt"></a>

只要任何一個已註冊執行個體在 `InService` 狀態，您的負載平衡器便可使用。

若要檢查您新註冊的 EC2 執行個體的狀態，請使用下列 [describe-instance-health](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-instance-health.html) 命令：

```
aws elb describe-instance-health  --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

以下是回應範例：

```
{
    "InstanceStates": [
        {
            "InstanceId": "i-4f8cf126", 
            "ReasonCode": "N/A", 
            "State": "InService", 
            "Description": "N/A"
        }, 
        {
            "InstanceId": "i-0bb7ca62", 
            "ReasonCode": "Instance", 
            "State": "OutOfService", 
            "Description": "Instance registration is still in progress"
        }
    ]
}
```

如果執行個體的 `State` 欄位是 `OutOfService`，原因可能是您的執行個體仍在註冊中。如需詳細資訊，請參閱[故障診斷 Classic Load Balancer：執行個體註冊](ts-elb-register-instance.md)。

當至少有一個執行個體處於 `InService` 狀態後，您即可測試負載平衡器。若要測試您的負載平衡器，請複製負載平衡器的 DNS 名稱，並貼至連接網際網路連線的 Web 瀏覽器網址欄位。如果負載平衡器運作正常，您可查看 HTTP 伺服器的預設頁面。

### 步驟 7：刪除負載平衡器 (選用)
<a name="us-tearing-lb-cli"></a>

刪除負載平衡器會自動取消註冊其關聯的 EC2 執行個體。負載平衡器刪除後，即無需再支付該負載平衡器的費用。不過，EC2 執行個體會持續執行，而且您會持續支付費用。

若要刪除負載平衡器，請使用下列 [delete-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer.html) 命令：

```
aws elb delete-load-balancer --load-balancer-name my-loadbalancer
```

若要停止您的 EC2 執行個體，請使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令。若要終止您的 EC2 執行個體，請使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令。

# 設定 Classic Load Balancer 的 HTTPS 接聽程式
<a name="elb-add-or-delete-listeners"></a>

*接聽程式*是檢查連線請求的程序。它是透過一個前端 (用戶端到負載平衡器) 連線的協定和連接埠，以及一個後端 (負載平衡器到執行個體) 連線的協定和連接埠進行設定。如需有關 Elastic Load Balancing 支援的連接埠、通訊協定和接聽程式組態的詳細資訊，請參閱 [Classic Load Balancer 的接聽程式](elb-listener-config.md)。

如果您的負載平衡器具有接受連接埠 80 的 HTTP 請求的接聽程式，您可以新增接受連接埠 443 上的 HTTPS 請求的接聽程式。如果您指定 HTTPS 接聽程式傳送請求到連接埠 80 上的執行個體，則負載平衡器會終止 SSL 請求，而且不加密從負載平衡器到執行個體的通訊。如果 HTTPS 接聽程式傳送請求到連接埠 443 上的執行個體，便會將從負載平衡器到執行個體的通訊加密。

如果您的負載平衡器使用已加密的連線來與執行個體通訊，您就可以選擇性啟用執行個體的身分驗證。這可確保負載平衡器僅與執行個體通訊，若其公有金鑰符合您為此目的而指定到負載平衡器的金鑰的話。

如需有關建立新 HTTPS 接聽程式的詳細資訊，請參閱[使用 HTTPS 接聽程式建立 Classic Load Balancer](elb-create-https-ssl-load-balancer.md)。

**Topics**
+ [先決條件](#add-listener-prerequisites)
+ [使用主控台新增 HTTPS 接聽程式](#add-listener-console)
+ [使用 新增 HTTPS 接聽程式 AWS CLI](#add-listener-cli)

## 先決條件
<a name="add-listener-prerequisites"></a>

若要啟用 HTTPS 接聽程式的 HTTPS 支援，您必須在您的負載平衡器上部署 SSL 伺服器憑證。負載平衡器使用此憑證以終止然後解密請求，再將它們傳送到執行個體。若您沒有 SSL 憑證，您可以建立一個。如需詳細資訊，請參閱[Classic Load Balancer 的 SSL/TLS 憑證](ssl-server-cert.md)。

## 使用主控台新增 HTTPS 接聽程式
<a name="add-listener-console"></a>

您可以將 HTTPS 接聽程式新增至現有的負載平衡器。

**使用主控台將 HTTPS 接聽程式新增至負載平衡器**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**接聽程式**索引標籤中，選擇**管理接聽程式**。

1. 在**管理接聽程式**頁面的**接聽程式**區段中，選擇**新增接聽程式**。

1. 針對**接聽程式通訊協定**，選取 **HTTPS**。
**重要**  
根據預設，**執行個體通訊協定**為 HTTP。如果您想要設定後端執行個體驗證，請將**執行個體通訊協定**變更為 HTTPS。

1. 針對**安全政策**，我們建議您使用最新的預先定義安全政策。若您需要使用不同的預先定義安全政策或建立自訂政策，請參閱[更新 SSL 溝通組態](ssl-config-update.md#ssl-config-update-console)。

1. 針對**預設 SSL 憑證**，請選擇**編輯**，然後執行以下其中一項：
   + 如果您使用 建立或匯入憑證 AWS Certificate Manager，請選擇**從 ACM**，從清單中選擇憑證，然後選擇**儲存變更**。
**注意**  
此選項僅適用於支援 AWS Certificate Manager的區域。
   + 如果您使用 IAM 匯入憑證，請選擇**從 IAM**，從清單中選取憑證，然後選擇**儲存變更**。
   + 如果您想將 SSL 憑證匯入 ACM，請選取**匯入**和**到 ACM**。在**憑證私有金鑰**中，複製並貼上 PEM 編碼的私有金鑰檔案內容。在**憑證內文**中，複製並貼上 PEM 編碼的公有金鑰憑證檔案內容。在**憑證鏈 - 選用**中，複製並貼上 PEM 編碼的憑證鏈檔案內容，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。
   + 如果您有要匯入的 SSL 憑證，但 ACM 在此區域中不受支援，請選取**匯入**和**到 IAM**。在**憑證名稱**中輸入憑證名稱。在**憑證私有金鑰**中，複製並貼上 PEM 編碼的私有金鑰檔案內容。在**憑證內文**中，複製並貼上 PEM 編碼的公有金鑰憑證檔案內容。在**憑證鏈 - 選用**中，複製並貼上 PEM 編碼的憑證鏈檔案內容，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。
   + 選擇**儲存變更**。

1. **Cookie 黏性**預設為**停用**。若要變更此設定，請選擇**編輯**。若選擇**由負載平衡器產生**，則必須指定**過期期間**。若選擇**由應用程式產生**，則必須指定 **Cookie 名稱**。做出這些選擇後，請選擇**儲存變更**。

1. (選用) 選擇**新增接聽程式**以新增額外的接聽程式。

1. 選擇**儲存變更**以新增您剛設定的接聽程式。

1. （選用） 若要設定現有負載平衡器的後端執行個體身分驗證，您必須使用 AWS CLI 或 API，因為使用 主控台不支援此任務。如需詳細資訊，請參閱[設定後端執行個體](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)。

## 使用 新增 HTTPS 接聽程式 AWS CLI
<a name="add-listener-cli"></a>

您可以將 HTTPS 接聽程式新增至現有的負載平衡器。

**使用 將 HTTPS 接聽程式新增至負載平衡器 AWS CLI**

1. 取得 SSL 憑證的 Amazon Resource Name (ARN)。例如：

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 使用以下 [create-load-balancer-listeners](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-listeners.html) 命令，將接聽程式加入到接受連接埠 443 上的 HTTPS 請求的負載平衡器，並將請求傳送到連接埠 80 上使用 HTTP 的執行個體：

   ```
   aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN
   ```

   如果您想要設定後端執行個體驗證，請使用下列命令來新增接聽程式，並接受連接埠 443 上的 HTTPS 請求，並傳送請求到連接埠 443 上使用 HTTPS 的執行個體：

   ```
   aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTPS,InstancePort=443,SSLCertificateId=ARN
   ```

1. (選用) 您可以使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來檢視您的負載平衡器的更新詳細資訊：

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

   以下是回應範例：

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ...
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "ELBSecurityPolicy-2016-08"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ], 
               ...
           }
       ]
   }
   ```

1. (選用) 使用預設的安全政策建立您的 HTTPS 接聽程式。如果您想要指定不同的預先定義安全政策或自訂安全政策，請使用 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 和 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令。如需詳細資訊，請參閱[使用 更新 SSL 溝通組態 AWS CLI](ssl-config-update.md#ssl-config-update-cli)。

1. (選用) 若要設定後端執行個體驗證，請使用 [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 命令。如需詳細資訊，請參閱[設定後端執行個體](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)。

# 更換 Classic Load Balancer 的 SSL 憑證
<a name="elb-update-ssl-cert"></a>

如果您有 HTTPS 接聽程式，當建立接聽程式時，您會將 SSL 伺服器憑證部署在負載平衡器上。每個憑證均附帶有效期間。您必須確保在有效期間結束之前，續約或更換憑證。

負載平衡器上提供 AWS Certificate Manager 和部署的憑證可以自動續約。ACM 會在憑證過期之前嘗試續約。如需詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[受管續約](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)。如果您將憑證匯入至 ACM，則必須監控憑證的過期日期，並在憑證過期之前續約。如需詳細資訊，請參閱 *AWS Certificate Manager 使用者指南*中的[匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)。當部署在負載平衡器上的憑證被更新後，新的請求會使用更新的憑證。

若要替換憑證，您必須先遵循建立目前的憑證時所使用的相同步驟來建立新憑證。然後，您可以替換憑證。當部署在負載平衡器上的憑證被取代後，新的請求會使用新的憑證。

請注意，更新或更換憑證並不會影響負載平衡器節點已接收，並且等待路由到運作狀態良好目標的請求。

**Topics**
+ [使用主控台替換 SSL 憑證](#us-update-lb-SSLcert-console)
+ [使用 取代 SSL 憑證 AWS CLI](#us-update-lb-SSLcert-cli)

## 使用主控台替換 SSL 憑證
<a name="us-update-lb-SSLcert-console"></a>

您可以將部署在負載平衡器上的憑證取代為 ACM 所提供的憑證，或上傳到 IAM 的憑證。

**使用主控台取代 HTTPS 負載平衡器的 SSL 憑證**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**接聽程式**索引標籤中，選擇**管理接聽程式**。

1. 在**管理接聽程式頁面**上找到要更新的接聽程式，在**預設 SSL 憑證**下方選擇**編輯**，然後執行下列其中一項：
   + 如果您使用 建立或匯入憑證 AWS Certificate Manager，請選擇**從 ACM**，從清單中選擇憑證，然後選擇**儲存變更**。
**注意**  
此選項僅適用於支援 AWS Certificate Manager的區域。
   + 如果您使用 IAM 匯入憑證，請選擇**從 IAM**，從清單中選取憑證，然後選擇**儲存變更**。
   + 如果您想將 SSL 憑證匯入 ACM，請選取**匯入**和**到 ACM**。在**憑證私有金鑰**中，複製並貼上 PEM 編碼的私有金鑰檔案內容。在**憑證內文**中，複製並貼上 PEM 編碼的公有金鑰憑證檔案內容。在**憑證鏈 - 選用**中，複製並貼上 PEM 編碼的憑證鏈檔案內容，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。
   + 如果您有要匯入的 SSL 憑證，但 ACM 在此區域中不受支援，請選取**匯入**和**到 IAM**。在**憑證名稱**中輸入憑證名稱。在**憑證私有金鑰**中，複製並貼上 PEM 編碼的私有金鑰檔案內容。在**憑證內文**中，複製並貼上 PEM 編碼的公有金鑰憑證檔案內容。在**憑證鏈 - 選用**中，複製並貼上 PEM 編碼的憑證鏈檔案內容，除非您使用的是自我簽署憑證，且不介意瀏覽器隱含地接受憑證。
   + 選擇**儲存變更**。

## 使用 取代 SSL 憑證 AWS CLI
<a name="us-update-lb-SSLcert-cli"></a>

您可以將部署在負載平衡器上的憑證取代為 ACM 所提供的憑證，或上傳到 IAM 的憑證。

**將 SSL 憑證取代為 ACM 提供的憑證**

1. 使用下列的 [request-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm/request-certificate.html) 命令申請新憑證：

   ```
   aws acm request-certificate --domain-name www.example.com
   ```

1. 使用以下 [set-load-balancer-listener-ssl-certificate](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-listener-ssl-certificate.html) 命令設定憑證：

   ```
   aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

**將 SSL 憑證取代為上傳至 IAM 的憑證**

1. 如果您有 SSL 憑證但尚未上傳，請參閱《*IAM 使用者指南*》中的[上傳伺服器憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#upload-server-certificate)。

1. 使用下列 [get-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/get-server-certificate.html) 命令以取得憑證的 ARN：

   ```
   aws iam get-server-certificate --server-certificate-name my-new-certificate
   ```

1. 使用以下 [set-load-balancer-listener-ssl-certificate](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-listener-ssl-certificate.html) 命令設定憑證：

   ```
   aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::123456789012:server-certificate/my-new-certificate
   ```

# 更新 Classic Load Balancer 的 SSL 溝通組態
<a name="ssl-config-update"></a>

Elastic Load Balancing 提供的安全政策已預先定義 SSL 溝通組態，可用於溝通用戶端和負載平衡器之間的 SSL 連線。如果將 HTTPS/SSL 通訊協定用於接聽程式，您可以使用其中一個預先定義安全政策，或使用自己的自訂安全政策。

如需關於安全政策的詳細資訊，請參閱[Classic Load Balancer 的 SSL 溝通組態](elb-ssl-security-policy.md)。如需有關 Elastic Load Balancing 提供之安全政策的組態的詳細資訊，請參閱 [Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

如果您建立 HTTPS/SSL 接聽程式，不與安全政策相關聯，Elastic Load Balancing 會關聯預先定義的安全政策 `ELBSecurityPolicy-2016-08` 與您的負載平衡器。

如果您願意的話，您可以建立自訂組態。我們強烈建議您在升級負載平衡器組態之前，先測試您的安全政策。

以下範例說明如何更新適用於 HTTPS/SSL 接聽程式的 SSL 溝通組態。請注意，變更不影響負載平衡器節點所接收的請求，而這些請求都在等待路由到運作狀態良好的執行個體，但更新的組態將會與新的請求一起使用。

**Topics**
+ [使用主控台更新 SSL 溝通組態](#ssl-config-update-console)
+ [使用 更新 SSL 溝通組態 AWS CLI](#ssl-config-update-cli)

## 使用主控台更新 SSL 溝通組態
<a name="ssl-config-update-console"></a>

在預設情況下，Elastic Load Balancing 會建立最新預先定義政策與您的負載平衡器之間的關聯。新增新的預先定義政策時，建議您更新負載平衡器，以使用新的預先定義政策。或者，您可以選擇不同的預先定義安全政策或建立自訂政策。

**使用主控台更新 HTTPS/SSL 負載平衡器的 SSL 溝通組態**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

1. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**接聽程式**索引標籤中，選擇**管理接聽程式**。

1. 在**管理接聽程式**頁面上找到要更新的接聽程式，在**安全政策**下方選擇**編輯**，然後使用下列其中一個選項選取安全政策：
   + 保留預設政策 **ELBSecurityPolicy-2016-08**，然後選擇**儲存變更**。
   + 選取預設政策以外的預先定義政策，然後選擇**儲存變更**。
   + 選取**自訂**並至少啟用一個通訊協定和一個加密方式，如下所示：

     1. 對於 **SSL Protocols (SSL 通訊協定)**，選擇一或多個可啟用的通訊協定。

     1. 對於 **SSL Options (SSL 選項)**，請選取 **Server Order Preference (伺服器優先順序)** 以使用適用於 SSL 溝通的[Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

     1. 對於 **SSL Ciphers (SSL 加密)**，選擇一或多個可啟用的加密方式。如果您已經具備 SSL 憑證，您必須啟用的加密方式須曾用於建立憑證，因為 DSA 和 RSA 加密方式是簽署演算法特有的。

     1. 選擇**儲存變更**。

## 使用 更新 SSL 溝通組態 AWS CLI
<a name="ssl-config-update-cli"></a>

您可以使用預設的預先定義安全政策、`ELBSecurityPolicy-2016-08`、不同的預先定義安全政策，或自訂安全政策。

**使用預先定義的 SSL 安全政策**

1. 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令，列出 Elastic Load Balancing 所提供預先定義的安全政策。您使用的語法取決於您所使用的作業系統和 Shell。

   **Linux**

   ```
   aws elb describe-load-balancer-policies --query 'PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}' --output table
   ```

   **Windows**

   ```
   aws elb describe-load-balancer-policies --query "PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}" --output table
   ```

   下列為範例輸出：

   ```
   ------------------------------------------
   |      DescribeLoadBalancerPolicies      |
   +----------------------------------------+
   |               PolicyName               |
   +----------------------------------------+
   |  ELBSecurityPolicy-2016-08             |
   |  ELBSecurityPolicy-TLS-1-2-2017-01     |
   |  ELBSecurityPolicy-TLS-1-1-2017-01     |
   |  ELBSecurityPolicy-2015-05             |
   |  ELBSecurityPolicy-2015-03             |
   |  ELBSecurityPolicy-2015-02             |
   |  ELBSecurityPolicy-2014-10             |
   |  ELBSecurityPolicy-2014-01             |
   |  ELBSecurityPolicy-2011-08             |
   |  ELBSample-ELBDefaultCipherPolicy      |
   |  ELBSample-OpenSSLDefaultCipherPolicy  |
   +----------------------------------------+
   ```

   若要判斷哪些加密已針對來政策啟用，請使用下列命令：

   ```
   aws elb describe-load-balancer-policies --policy-names ELBSecurityPolicy-2016-08 --output table
   ```

   如需有關為預先定義安全政策的組態的詳細資訊，請參閱[Classic Load Balancer 適用的預先定義 SSL 安全政策](elb-security-policy-table.md)。

1. 使用 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用其中一個預先定義安全政策的 SSL 溝通政策，如之前步驟所述。例如，以下命令會使用預設的預先定義安全政策：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy  --policy-type-name SSLNegotiationPolicyType
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=ELBSecurityPolicy-2016-08
   ```

   如果您超過對於負載平衡器政策數量的限制，請使用 [delete-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer-policy.html) 命令來刪除任何未使用的政策。

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已針對負載平衡器啟用新政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   該回應會顯示政策已在連接埠 443 上啟用。

   ```
   ...
     {
         "Listener": {
             "InstancePort": 443,
             "SSLCertificateId": "ARN",
             "LoadBalancerPort": 443,
             "Protocol": "HTTPS",
             "InstanceProtocol": "HTTPS"
         },
         "PolicyNames": [
             "my-SSLNegotiation-policy"
         ]
     }
   ...
   ```

當您建立自訂安全政策，您必須至少啟用一個通訊協定，和一個加密方式。DSA 和 RSA 加密方式是專用於建立 SSL 憑證的簽署演算法。如果您已有 SSL 憑證，請務必啟用用於建立您的憑證的加密方式。您的自訂政策名稱不得以 `ELBSample-` 或 `ELBSecurityPolicy-` 開頭，因為這些字首是預留給預先定義安全政策的名稱使用。

**使用自訂 SSL 安全政策**

1. 使用 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 命令來建立使用自訂安全政策的 SSL 溝通政策。例如：

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

   如果您超過對於負載平衡器政策數量的限制，請使用 [delete-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer-policy.html) 命令來刪除任何未使用的政策。

1. (選用) 使用以下 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 命令來確認已建立政策：

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   回應包含政策的描述。

1. 使用以下 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 命令以啟用負載平衡器連接埠 443 的政策：

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**注意**  
此 `set-load-balancer-policies-of-listener` 命令會將指定的負載平衡器連接埠的目前政策集合取代為指定的政策。`--policy-names` 清單必須包含所有要啟用的 政策。如果您省略的政策目前已啟用，它會被停用。

1. (選用) 使用以下 [describe- load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 命令來驗證已針對負載平衡器啟用新政策：

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   該回應會顯示政策已在連接埠 443 上啟用。

   ```
   ...
     {
         "Listener": {
             "InstancePort": 443,
             "SSLCertificateId": "ARN",
             "LoadBalancerPort": 443,
             "Protocol": "HTTPS",
             "InstanceProtocol": "HTTPS"
         },
         "PolicyNames": [
             "my-SSLNegotiation-policy"
         ]
     }
   ...
   ```