Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
在应用程序负载均衡器上配置双向 TLS
要使用双向 TLS 传递模式,只需要将侦听器配置为接受来自客户端的任何证书即可。当使用双向 TLS 传递时,应用程序负载均衡器会使用 HTTP 标头将整个客户端证书链发送到目标,这使您能够在应用程序中实现相应的身份验证和授权逻辑。有关更多信息,请参阅为您的应用程序负载均衡器创建 HTTPS 侦听器。
当您在验证模式下使用相互 TLS 时,应用程序负载均衡器会在负载均衡器协商 TLS 连接时为客户端执行 X.509 客户端证书身份验证。
要使用双向 TLS 验证模式,请执行下列操作:
按照本节中的过程在应用程序负载均衡器上配置双向 TLS 验证模式。
创建信任存储
如果在创建负载均衡器或侦听器时添加了信任存储,该信任存储会自动关联到新侦听器。否则,您必须自行将其关联到侦听器。
- Console
-
以下示例使用控制台的信任存储部分创建一个信任存储。您也可以在创建 HTTP 侦听器时创建信任存储库。
创建信任存储
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格上,选择信任存储。
-
选择创建信任存储。
-
信任存储配置
-
对于信任存储,输入信任存储的名称。
-
对于证书颁发机构捆绑包,输入要使用的 CA 证书捆绑包的 Amazon S3 路径。
-
(可选)使用对象版本选择 CA 证书捆绑包的早期版本。否则,将使用当前版本。
-
(可选)对于吊销,您可以选择将证书吊销列表添加到信任存储。
-
选择添加新 CRL,然后在 Amazon S3 中输入证书吊销列表的位置。
-
(可选)使用对象版本选择证书吊销列表的先前版本。否则,将使用当前版本。
-
(可选)展开信任存储标签,可为您的信任存储输入最多 50 个标签。
-
选择创建信任存储。
- Amazon CLI
-
创建信任存储
使用 create-trust-store 命令。
aws elbv2 create-trust-store \
--name my-trust-store \
--ca-certificates-bundle-s3-bucket amzn-s3-demo-bucket \
--ca-certificates-bundle-s3-key certificates/ca-bundle.pem
- CloudFormation
-
创建信任存储
定义 AWS::ElasticLoadBalancingV2::TrustStore 类型的资源。
Resources:
myTrustStore:
Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
Properties:
Name: my-trust-store
CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket
CaCertificatesBundleS3Key: certificates/ca-bundle.pem
关联信任存储
创建信任存储后,您必须将其与侦听器关联,然后应用程序负载均衡器才能开始使用信任存储。每个安全侦听器只能关联一个信任存储,但一个信任存储可以关联到多个侦听器。
- Console
-
您可以按以下过程中所示,将信任存储关联到现有侦听器。您也可以在创建 HTTPS 侦听器时关联信任存储。有关更多信息,请参阅创建 HTTPS 侦听器。
关联信任存储
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格中,选择负载均衡器。
-
选择负载均衡器。
-
在侦听器和规则选项卡上,选择 Protocol:Port 列中的链接以打开安全侦听器的详细信息页面。
-
在安全选项卡上,选择编辑安全侦听器设置。
-
如果未启用双向 TLS,请在客户端证书处理下选择双向身份验证(mTLS),然后选择使用信任存储进行验证。
-
对于信任存储,请选择该信任存储。
-
选择保存更改。
- Amazon CLI
-
关联信任存储
使用 modify-listener 命令。
aws elbv2 modify-listener \
--listener-arn listener-arn \
--mutual-authentication "Mode=verify,TrustStoreArn=trust-store-arn"
- CloudFormation
-
关联信任存储
更新 AWS::ElasticLoadBalancingV2::Listener 资源。
Resources:
myHTTPSListener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
LoadBalancerArn: !Ref myLoadBalancer
Protocol: HTTPS
Port: 443
DefaultActions:
- Type: "forward"
TargetGroupArn: !Ref myTargetGroup
SslPolicy: ELBSecurityPolicy-TLS13-1-2-2021-06
Certificates:
- CertificateArn: certificate-arn
MutualAuthentication:
- Mode: verify
TrustStoreArn: trust-store-arn
替换 CA 证书捆绑包
CA 证书捆绑包是信任存储的一个必需组件。它是经过证书颁发机构验证的受信任的根证书和中间证书的集合。这些经过验证的证书确保客户端可以信任所呈现的证书由负载均衡器拥有。
一个信任存储一次只能包含一个 CA 证书捆绑包,但是您可以在创建信任存储后随时替换 CA 证书捆绑包。
- Console
-
替换 CA 证书捆绑包
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格上,选择信任存储。
-
选择该信任存储。
-
依次选择操作、替换 CA 捆绑包。
-
在替换 CA 捆绑包页面的证书颁发机构捆绑包下,输入所需 CA 捆绑包的 Amazon S3 位置。
-
(可选)使用对象版本选择证书吊销列表的先前版本。否则,将使用当前版本。
-
选择替换 CA 捆绑包。
- Amazon CLI
-
替换 CA 证书捆绑包
使用 modify-trust-store 命令。
aws elbv2 modify-trust-store \
--trust-store-arn trust-store-arn \
--ca-certificates-bundle-s3-bucket amzn-s3-demo-bucket-new \
--ca-certificates-bundle-s3-key certificates/new-ca-bundle-pem
- CloudFormation
-
更新 CA 证书捆绑包
定义 AWS::ElasticLoadBalancingV2::TrustStore 类型的资源。
Resources:
myTrustStore:
Type: 'AWS::ElasticLoadBalancingV2::TrustStore'
Properties:
Name: my-trust-store
CaCertificatesBundleS3Bucket: amzn-s3-demo-bucket-new
CaCertificatesBundleS3Key: certificates/new-ca-bundle.pem
添加证书吊销列表
或者,您可以为信任存储创建证书吊销列表。吊销列表由证书颁发机构发布,包含已吊销证书的数据。应用程序负载均衡器仅支持 PEM 格式的证书吊销列表。
当将证书吊销列表添加到信任存储时,系统会为其提供吊销 ID。每添加一个吊销列表到信任存储,吊销 ID 都会增加,并且不能更改。
应用程序负载均衡器无法吊销证书吊销列表中具有负序列号的证书。
- Console
-
添加吊销列表
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/。
-
在导航窗格上,选择信任存储。
-
选择信任存储以查看其详细信息页面。
-
在证书吊销列表选项卡上,依次选择操作、添加吊销列表。
-
在添加吊销列表页面上的证书吊销列表下,输入所需证书吊销列表的 Amazon S3 位置
-
(可选)使用对象版本选择证书吊销列表的先前版本。否则,将使用当前版本。
-
选择添加吊销列表
- Amazon CLI
-
添加吊销列表
使用 add-trust-store-revocations 命令。
aws elbv2 add-trust-store-revocations \
--trust-store-arn trust-store-arn \
--revocation-contents "S3Bucket=amzn-s3-demo-bucket,S3Key=crl/revoked-list.crl,RevocationType=CRL"
- CloudFormation
-
添加吊销列表
定义 AWS::ElasticLoadBalancingV2::TrustStoreRevocation 类型的资源。
Resources:
myRevocationContents:
Type: 'AWS:ElasticLoadBalancingV2::TrustStoreRevocation'
Properties:
TrustStoreArn: !Ref myTrustStore
RevocationContents:
- RevocationType: CRL
S3Bucket: amzn-s3-demo-bucket
S3Key: crl/revoked-list.crl
删除证书吊销列表
如果不再需要某个证书吊销列表,可以将其删除。删除信任存储中的某个证书吊销列表后,其吊销 ID 也奖被删除,并且在信任存储的有效期内不会重新使用。
- Console
-
- Amazon CLI
-
删除吊销列表
使用 remove-trust-store-revocations 命令。
aws elbv2 remove-trust-store-revocations \
--trust-store-arn trust-store-arn \
--revocation-ids id-1 id-2 id-3
删除信任存储
当您不再使用某个信任存储时,可以将其删除。不能删除关联到侦听器的信任存储。
- Console
-
- Amazon CLI
-
删除信任存储
使用 delete-trust-store 命令。
aws elbv2 delete-trust-store \
--trust-store-arn trust-store-arn