amazon-web-services - 如何为 Amazon EMR 生成 trustedCertificates.pem 和 certificateChain.pem 文件?

标签 amazon-web-services security ssl certificate amazon-emr

我正在尝试加密 EMR 节点之间传输的 TLS 流量。 AWS 网站上的示例使用自签名证书。

因为这一切都在我的私有(private)网络中,所以我已经生成了一个带有私钥的根 CA 证书,该证书受到严格保护。然后我有一个派生证书,可以执行 key 加密、数字签名和服务器身份验证。

我们称根 CA 证书为 A,派生证书为 B。

EMR 说我需要将一个 zip 文件上传到 s3,其中包含 2 个必需文件和一个可选文件:

  • 需要privateKey.pem,

  • certificateChain.pem 是必需的

  • trustedCertificates.pem 是可选的

对于 privateKey.pem,我假设我可以只使用与证书 B 关联的私钥。

  1. 对于 certificateChain.pem,我需要证书 B 的内容和证书 A 的内容还是只需要证书 A 的内容?
  2. 对于 trustedCertificates.pem,我需要证书 A 还是证书 B 的内容?

最佳答案

如果您按照文档遵循此 AWS 脚本,您会发现 trustedCertificates.pem 和 certificateChain.pem 是同一个文件(通过文件副本)。

openssl req -x509 -newkey rsa:2048 -keyout privateKey.pem -out certificateChain.pem -days 365 -nodes -subj '/C=US/S=Washington/L=Seattle/O=MyOrg/OU=MyDept/CN=*.ec2.internal'

cp certificateChain.pem trustedCertificates.pem

zip -r -X certs.zip privateKey.pem certificateChain.pem trustedCertificates.pem

EMR Create Certificate Script

您通过创建根证书使事情复杂化,这是不必要的。遵循有关在 EMR 上设置 TLS 的 AWS 文档:

Secure Amazon EMR with Encryption

您上传到 S3 的 zip 文件包含三个文件:privateKey.pem、certificateChain.pem 和 trustedCertificates.pem。其中两个是同一个文件,但名称不同。

[在对证书进行很长的评论后进行编辑]

当您创建自签名根证书时,它签名的所有证书也是自签名的。通过验证链上的每个证书到根来验证证书。如果根证书不受信任,则所有证书都是不受信任的。

AWS 提供证书管理服务,您可以在其中成为自己的 CA。然而,这是非常昂贵的。如果您是大型公司、银行或金融机构等,那么这项 AWS 服务非常有用。

对于 Amazon EMR,可以使用单个自签名证书。原因是您可以完全控制使用该证书的系统。如果系统的任何部分提供公共(public)访问,您将不希望使用自签名证书。

让 OP 感到困惑的一个项目是可信证书和证书链之间的区别。在他的示例中,由于它们只是根证书而不是中间证书,因此受信任和链是同一项目。只有当他创建了另一个用于签署上一个证书的签名证书时,证书链才会不同(会有根证书和签名证书)。

关于amazon-web-services - 如何为 Amazon EMR 生成 trustedCertificates.pem 和 certificateChain.pem 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52227955/

相关文章:

javascript - 使用 PHP 交付 JavaScript 安全吗?

ssl - gcloud SSL握手失败,zscaler

python-3.x - 如何在 AWS EMR 上设置 PYTHONHASHSEED

amazon-web-services - Base64解码编码,得到不同的数据

bash - 有没有办法使用 cli 关闭和启动 AWS redshift 集群?

ssl - 尝试使用 docker、restcomm 和 letsencrypt 设置 ssl

ssl - 通过 HTTPS (SSL/TLS) 的渐进式 JPG

amazon-web-services - 加密AWS RDS实例有什么好处

php - session 劫持在 PHP 中究竟是如何工作的?

java - 已签名的 Java 小程序