如何为 Amazon EMR 生成 trustedCertificates.pem 和 certificateChain.pem 文件?
How do I generate a trustedCertificates.pem and certificateChain.pem file for Amazon EMR?
我正在尝试加密 EMR 节点之间传输的 TLS 流量。 AWS网站上的示例使用的是自签名证书。
因为这一切都在我的私人网络中,所以我已经生成了一个带有私钥的根 CA 证书,该证书受到严格保护。然后我有一个可以执行密钥加密、数字签名和服务器身份验证的派生证书。
我们称根CA证书为A,派生证书为B。
EMR 说我需要将一个 zip 文件上传到 s3,其中包含 2 个必需文件和一个可选文件:
privateKey.pem为必填项,
certificateChain.pem 是必需的
和trustedCertificates.pem是可选的
对于 privateKey.pem,我假设我可以只使用与证书 B 关联的私钥。
- 对于certificateChain.pem,我需要证书B的内容和证书A的内容还是只需要证书A的内容?
- 对于 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 上设置 TLS 的 AWS 文档:
Secure Amazon EMR with Encryption
您上传到 S3 的 zip 文件包含三个文件,privateKey.pem、certificateChain.pem 和 trustedCertificates.pem。其中两个是同一个文件,只是不同的名字。
[在对证书进行很长的评论后进行编辑]
当您创建自签名根证书时,它签名的所有证书也是自签名的。通过验证链上的每个证书到根来验证证书。如果根证书不受信任,则所有证书都是不受信任的。
AWS 提供证书管理服务,您可以在其中成为自己的 CA。然而,这是非常昂贵的。如果你是大公司、银行或金融机构等,那么这个AWS服务就非常有用了。
对于 Amazon EMR,可以使用单个自签名证书。原因是您可以完全控制使用该证书的系统。如果系统的任何部分提供 [=38=] 访问权限,您将不想使用自签名证书。
让 OP 感到困惑的一个项目是可信证书和证书链之间的区别。在他的示例中,由于它们只是根证书而不是中间证书,因此受信任和链是同一项目。只有当他创建了另一个用于签署上一个证书的签名证书时,证书链才会不同(会有根证书和签名证书)。
我正在尝试加密 EMR 节点之间传输的 TLS 流量。 AWS网站上的示例使用的是自签名证书。
因为这一切都在我的私人网络中,所以我已经生成了一个带有私钥的根 CA 证书,该证书受到严格保护。然后我有一个可以执行密钥加密、数字签名和服务器身份验证的派生证书。
我们称根CA证书为A,派生证书为B。
EMR 说我需要将一个 zip 文件上传到 s3,其中包含 2 个必需文件和一个可选文件:
privateKey.pem为必填项,
certificateChain.pem 是必需的
和trustedCertificates.pem是可选的
对于 privateKey.pem,我假设我可以只使用与证书 B 关联的私钥。
- 对于certificateChain.pem,我需要证书B的内容和证书A的内容还是只需要证书A的内容?
- 对于 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 上设置 TLS 的 AWS 文档:
Secure Amazon EMR with Encryption
您上传到 S3 的 zip 文件包含三个文件,privateKey.pem、certificateChain.pem 和 trustedCertificates.pem。其中两个是同一个文件,只是不同的名字。
[在对证书进行很长的评论后进行编辑]
当您创建自签名根证书时,它签名的所有证书也是自签名的。通过验证链上的每个证书到根来验证证书。如果根证书不受信任,则所有证书都是不受信任的。
AWS 提供证书管理服务,您可以在其中成为自己的 CA。然而,这是非常昂贵的。如果你是大公司、银行或金融机构等,那么这个AWS服务就非常有用了。
对于 Amazon EMR,可以使用单个自签名证书。原因是您可以完全控制使用该证书的系统。如果系统的任何部分提供 [=38=] 访问权限,您将不想使用自签名证书。
让 OP 感到困惑的一个项目是可信证书和证书链之间的区别。在他的示例中,由于它们只是根证书而不是中间证书,因此受信任和链是同一项目。只有当他创建了另一个用于签署上一个证书的签名证书时,证书链才会不同(会有根证书和签名证书)。