Как сгенерировать файл trustedCertificates.pem и certificateChain.pem для Amazon EMR? - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь зашифровать трафик TLS при передаче между узлами EMR. В примере на веб-сайте AWS используется самозаверяющий сертификат.

Поскольку это все в моей частной сети, я сгенерировал сертификат корневого CA с закрытым ключом, который надежно защищен. Затем у меня есть производный сертификат, который может выполнять шифрование ключей ", цифровую подпись и проверку подлинности сервера.

Давайте назовем сертификат корневого CA A и производный сертификат B.

EMR говорит, что мне нужно загрузить zip-файл на s3, содержащий 2 обязательных файла и один необязательный файл:

  • требуется privateKey.pem,

  • требуется certificateChain.pem

  • , а trustCertificates.pem необязательно

Для privateKey.pem я предполагаю, что могу просто использовать закрытый ключ, связанный с сертификатом B.

  1. Для certificateChain.pem мне нужно содержимое сертификата B, связанное с сертификатом A, или мне просто нужно содержимое сертификата A?
  2. Для доверенных сертификатов.pem мне нужно содержимое сертификата A или сертификата B?

1 Ответ

0 голосов
/ 07 сентября 2018

Если вы будете следовать этому сценарию AWS в соответствии с документацией, вы обнаружите, чтоrustCertificates.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 Создать скрипт сертификата

Вы все усложняете, создавая корневой сертификат, который не нужен. Следуйте документации AWS по настройке TLS на EMR:

Безопасная Amazon EMR с шифрованием

ZIP-файл, который вы загружаете на S3, содержит три файла: privateKey.pem, certificateChain.pem иrustCertificates.pem. Два из них - это один и тот же файл с разными именами.

[РЕДАКТИРОВАТЬ после очень длинной ветки комментариев к сертификатам]

Когда вы создаете самоподписанный корневой сертификат, все сертификаты, которые он подписывает, также являются самоподписанными. Сертификат проверяется путем проверки каждого сертификата в цепочке до корня. Если корневой сертификат ненадежен, то все сертификаты ненадежны.

AWS предлагает услугу управления сертификатами, где вы можете быть вашим собственным центром сертификации. Однако это очень дорого. Если вы крупная компания, банк или финансовое учреждение и т. Д., То эта услуга AWS очень полезна.

Для Amazon EMR можно использовать один самозаверяющий сертификат. Причина заключается в том, что вы полностью контролируете системы, использующие сертификат. Вы не захотите использовать самозаверяющий сертификат, если какая-либо часть системы предоставляет публичный доступ.

Один элемент, который запутал OP, - это разница между доверенным сертификатом и цепочкой сертификатов. В его примере, поскольку они являются только корневым сертификатом, а не промежуточными сертификатами, доверенный и цепочка являются одним и тем же элементом. Только если он создал еще один сертификат подписи, который использовался для подписания последнего сертификата, цепочка сертификатов будет отличаться (будет корневой сертификат и сертификат подписи).

...