如何在弹性负载均衡中为 mTLS 配置证书吊销列表?
我想在弹性负载均衡 (ELB) 中为双向 TLS (mTLS) 配置证书吊销列表 (CRL)。
简短描述
当您在应用程序负载均衡器中使用 mTLS 时,可以使用第三方 CA(certificate authority,证书颁发机构)的证书对客户端进行身份验证。此外,您还可以借助 AWS Private CA,使用证书对客户端进行身份验证。要吊销对证书的访问,请在负载均衡信任库下创建 CRL(certificate revocation list,证书吊销列表)。
解决方法
注意:对于第三方证书颁发机构,请跳至下述解决方法的将 PEM 编码的 CRL 上传到 Amazon S3 存储桶部分。
要吊销在 AWS Private CA 上颁发的客户端证书,请完成以下步骤:
在颁发客户端证书的 CA 中激活 CRL 分配选项
要在颁发客户端证书的 CA 中激活 CRL 分配选项,请完成以下步骤:
- 打开 AWS Private CA 控制台。
- 选择颁发客户端证书的证书颁发机构。
- 修改 Revocation configuration(吊销配置),然后开启 CRL distribution(CRL 分配)选项。
- 要附加必要的访问策略,请创建新的 Amazon Simple Storage Service (Amazon S3) 存储桶或使用现有的 Amazon S3 存储桶。
- 要确认 acm-pca-permission-test 文件是在您的 Amazon S3 存储桶中创建的,请创建一个文本文件。创建一个文本文件,内容为 This is a test file to check the access permissions of the bucket(这是一个测试文件,用于检查存储桶的访问权限)。
吊销证书
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误消息,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新的 AWS CLI 版本。
要吊销客户端证书的访问权限,请完成以下步骤:
-
找到客户端证书序列号并添加注释。此序列号用于以下步骤。
openssl x509 -in client_certertificate.cert -text -noout | grep -A 1 "Serial Number"
-
(可选)在应用程序负载均衡器连接日志字段 leaf_client_cert_serial_number 中找到客户端证书序列号。
-
要吊销证书访问权限,请使用 acm-pca 命令:
**注意:**将 example-arn-ca-issuer 替换为证书颁发机构 ARN,将 example-cert-sn 替换为证书序列号,将 example-reason 替换为您的吊销原因。aws acm-pca revoke-certificate \ --certificate-authority-arn <example-arn-ca-issuer> \ --certificate-serial <example-cert-sn> \ --revocation-reason "example-reason"
-
对要吊销访问权限的所有客户端证书重复上述的第 2 步和第 3 步。
**注意:**吊销证书后,AWS Private CA 最多需要 30 分钟才能更新您的 Amazon S3 存储桶中的 CRL。
转换生成的 CRL
注意:如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新的 AWS CLI 版本。
要转换生成的 CRL,请完成以下步骤:
-
打开 Amazon S3 控制台。
-
从之前使用的 Amazon S3 存储桶中下载 CRL 文件。或者,使用 AWS CLI 列出 Amazon S3 存储桶的内容并将文件下载到您的工作目录中:
**注意:**将 example-bucket 替换为您的 Amazon S3 存储桶,将 example-crl-file 替换为 CRL 文件。aws s3 ls s3://<example-bucket>/crl/ aws s3 cp s3://<example-bucket>/crl/<example-crl-file>.crl ./revoke_list.crl
-
将下载的 CRL 文件的编码从 DER 转换为 PEM:
openssl crl -in example-revoke-list.crl -inform DER -out revoke_list_in_pem.crl
将 PEM 编码的 CRL 上传到 Amazon S3 存储桶
注意:如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。.此外,请确保您使用的是最新的 AWS CLI 版本。
要将 PEM 编码的 CRL 上传到 Amazon S3 存储桶,请完成以下步骤:
- 打开 Amazon S3 控制台。
- 将 CRL 文件上传到您的 Amazon S3 存储桶。或者,使用 AWS CLI 将 CRL 文件从您的工作目录中上传:
**注意:**将 example-bucket 替换为您的 Amazon S3 存储桶。aws s3 cp revoked_list_in_pem.crl s3://<example-bucket>/crl/revoked_list_in_pem.crl
使用 CRL 更新负载均衡信任库吊销列表
注意:如果在运行 AWS CLI 命令时收到错误,请参阅排查 AWS CLI 错误。.此外,请确保您使用的是最新的 AWS CLI 版本。
要更新负载均衡信任库中的 CRL,请完成以下步骤:
-
导航到 Trust Stores(信任库),然后选择要更新的信任库。
-
要添加吊销列表,请提供要添加的 CRL 文件的 Amazon S3 存储桶 URL。或者,使用 elbv2 命令更新信任库的吊销情况:
**注意:**将 example-trust-store-arn 替换为信任库的 ARN,将 example-bucket 替换为 Amazon S3 存储桶。aws elbv2 add-trust-store-revocations \ --trust-store-arn <example-trust-store-arn> \ --revocation-contents S3Bucket=<example-bucket>,S3Key=/crl/revoked_list_in_pem.crl,RevocationType=CRL
-
要确认 CRL 已应用,请查看输出以确定已吊销的条目数量是否有所增加。
将证书吊销列表添加到信任库时,会为其提供一个吊销 ID。每当向信任库中添加吊销列表时,吊销 ID 就会增加,并且这些 ID 无法更改。如果删除了证书吊销列表,则吊销 ID 也会删除,并且在信任库的生命周期内不会再次使用这个吊销 ID。
相关信息
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 3 个月前