本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在应用程序负载均衡器上配置双向 TLS
要使用双向 TLS 直通模式,您只需将侦听器配置为接受来自客户端的任何证书即可。当使用双向 TLS 传递时,应用程序负载均衡器会使用 HTTP 标头将整个客户端证书链发送到目标,这使您能够在应用程序中实现相应的身份验证和授权逻辑。有关更多信息,请参阅为您的应用程序负载均衡器创建 HTTPS 侦听器。
当您在验证模式下使用相互 TLS 时,应用程序负载均衡器会在负载均衡器协商 TLS 连接时为客户端执行 X.509 客户端证书身份验证。
要使用双向 TLS 验证模式,请执行下列操作:
使用以下过程在 Application Load Balancer 上配置双向 TLS 验证模式。
创建信任存储
如果您在创建负载均衡器或侦听器时添加了信任存储,则该信任存储库将自动与新的侦听器关联。否则,您必须自己将其与听众关联。
- Console
-
以下示例使用控制台的 Trust Store 部分创建信任存储。或者,您可以在创建 HTTP 侦听器时创建信任存储库。
创建信任存储
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/。
-
在导航窗格上,选择信任存储。
-
选择 “创建信任存储”。
-
信任存储配置
-
在 T rust 商店名称中,输入您的信任商店的名称。
-
对于证书颁发机构捆绑包,请输入要使用的 CA 证书捆绑包的 Amazon S3 路径。
-
(可选)使用对象版本选择 ca 证书捆绑包的先前版本。否则,将使用当前版本。
-
(可选)对于撤销,您可以向信任存储区添加证书吊销列表。
-
选择 “添加新 CRL”,然后在 Amazon S3 中输入证书吊销列表的位置。
-
(可选)使用对象版本选择证书吊销列表的先前版本。否则,将使用当前版本。
-
(可选)展开 T rust 存储标签,为您的信任存储最多输入 50 个标签。
-
选择 “创建信任存储”。
- AWS 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)”,然后选择 “使用信任库验证”。
-
对于信任存储,请选择信任存储。
-
选择保存更改。
- AWS 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 捆绑包。
- AWS 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。每个添加到信任存储库的吊销列表都会 IDs 增加,并且无法更改。
应用程序负载均衡器无法吊销证书吊销列表中序列号为负的证书。
- Console
-
添加吊销列表
打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/。
-
在导航窗格上,选择信任存储。
-
选择信任存储以查看其详细信息页面。
-
在证书吊销列表选项卡上,选择操作,添加吊销列表。
-
在添加吊销列表页面上的证书吊销列表下,输入所需证书吊销列表的 Amazon S3 位置
-
(可选)使用对象版本选择证书吊销列表的先前版本。否则,将使用当前版本。
-
选择添加吊销列表
- AWS 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::TrustStore撤销” 的资源。
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
-
- AWS 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
-
- AWS CLI
-
删除信任存储库
使用 delete-trust-store 命令。
aws elbv2 delete-trust-store \
--trust-store-arn trust-store-arn