前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDP-DC启用Auto-TLS

CDP-DC启用Auto-TLS

作者头像
大数据杂货铺
发布2020-07-02 15:13:14
1.3K0
发布2020-07-02 15:13:14
举报
文章被收录于专栏:大数据杂货铺大数据杂货铺

有线加密可保护移动中的数据,而传输层安全性(TLS)是有线加密中使用最广泛的安全协议。TLS通过对端点之间传输的数据包进行加密,在通过网络进行通信的应用程序之间提供身份验证、隐私和数据完整性。用户通过浏览器或命令行工具与Hadoop集群进行交互,而应用程序则使用REST API或Thrift。

手动启用TLS的步骤

下面介绍了在Hortonworks Data Platform(HDP)或Cloudera Enterprise(CDH)集群上启用有线加密的典型过程。

获取证书

• 在每个主机上生成一个公共/私有密钥对

• 为所有主机生成证书签名请求(CSR)。

• 获取由公司内部证书颁发机构(CA)签署的CSR。

• 生成keystore和truststore,并将其部署在所有集群主机上。

集群配置

• 对于每个服务,通过设置keystore和truststore配置来启用TLS。

• 在继续为下一个服务启用TLS之前,请重新启动受影响的组件。

• 在集群管理器的用户界面之外进行所需的更改(例如,设置truststore,启用Knox SSL等)

持续维护

• 对于新服务的安装,需要为服务配置keystore和truststore信息。重新启动受影响的服务。

• 对于要添加到集群中的每个新主机,管理员必须执行“获取证书”章节中的步骤(仅适用于新主机)。

• 证书在到期之前被轮换。

使用Ambari,可以在Hortonworks数据平台(HDP)中使用这些步骤启用TLS 。在Cloudera Manager(CM)中,可以使用这些步骤手动启用TLS 。从历史上看,这一直是在CDH分发上实施TLS的标准过程。

Cloudera Manager中启用Auto-TLS功能

在大型部署中,上述过程可能是一项巨大的工作,通常会导致部署时间长和操作困难。Auto-TLS功能在集群级别自动执行启用TLS加密所需的所有步骤。使用Auto-TLS,您可以让Cloudera管理集群中所有证书的证书颁发机构(CA)或使用公司现有的CA。在大多数情况下,可以通过Cloudera Manager UI轻松启用所有必需的步骤。此功能可自动执行以下过程–

• 当Cloudera Manager用作证书颁发机构时–

o 创建根证书颁发机构或证书签名请求(CSR),以创建要由公司现有证书颁发机构(CA)签名的中间证书颁发机构

o 为主机生成CSR并自动对其进行签名

• 始终执行以下步骤

o 为主机创建keystore和truststore。

o 将证书、keystore和truststore部署到集群中的所有主机。

o 然后,通过配置角色实例特定目录中的keystore和truststore信息,将自动启用所有TLS的TLS服务。

o 为Cloudera Manager服务器和代理启用TLS。

o 完成此初始设置后,默认情况下将自动启用所有新服务,主机(或)其他计算集群设置。

o 提供用于轮换证书的自动化框架。

Auto-TLS功能类似于kube master现在如何在香草Kubernetes集群上对节点证书进行自签名,CM的好处是它在保护集群服务方面也迈出了第一步。 是官方文档的链接。让我们在CDP DC 7.1集群上通过以下示例回顾这些选项。

选项1 –使用Cloudera Manager生成内部证书颁发机构和相应的证书

最简单的选择是让Cloudera Manager创建和管理自己的证书颁发机构。要选择此选项,请从Cloudera Manager中转到管理>安全性>启用Auto-TLS并完成向导。

系统将提示您启动Cloudera Manager,然后启动Cloudera管理服务和所有受影响的集群。启动Cloudera Manager服务器时,默认情况下应该在TLS端口7183上看到UI。浏览器将显示来自SCM本地CA机构的自签名证书,如下所示。浏览器显示警告,因为它不知道CM生成的根CA。将根CA导入客户端浏览器的truststore后,浏览器将不会显示此警告。

设置集群时,应该看到一条消息,说明已启用Auto-TLS。继续安装所需的服务。瞧!整个集群均经过TLS加密。任何新的主机或服务都将自动配置。这是默认情况下启用TLS加密的HDFS服务的示例(在信任Cloudera Manager生成的根证书之后)。

尽管此选项是最简单的,但它可能不适用于某些企业部署,在这些企业部署中,公司现有的证书颁发机构(CA)颁发TLS证书以维护集中的信任链。

选项2 –使用现有的证书颁发机构

您可以将Cloudera Manager CA设置为现有根CA的中间CA,也可以手动生成由现有根CA签名的证书并将其上载到Cloudera Manager。以下将这两个选项描述为2a和2b。

选项2a –使用现有的根CA启用Auto-TLS

仅对于新安装,您可以使Cloudera Manager成为一个中间CA,该CA为所有集群主机和服务签署证书。这是一个三步的处理过程。首先,使Cloudera Manager生成证书签名请求(CSR)。其次,由公司的证书颁发机构(CA)签署CSR。第三,提供签名证书链以继续Auto-TLS设置。下面的示例演示了这三个步骤。

1) 在启动Cloudera Manager之前,使用–stop-at-csr 选项初始化证书管理器。

代码语言:javascript
复制
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk; 
/opt/cloudera/cm-agent/bin/certmanager --location /var/lib/cloudera-scm-server/certmanager setup --configure-services --stop-at-csr

2) 这将 在/var/lib/cloudera-scm-server/certmanager/CMCA/private/ca_csr.pem中生成一个证书签名请求(CSR)文件。如果仔细检查CSR,您将看到CSR请求必要的扩展名X509v3密钥用法:关键证书签名,以自行签署证书。

3) 获得签名证书后,请确保该证书具有所需的扩展名– X509v3基本约束:CA:TRUE 和 X509v3密钥用法:密钥证书签名。使用以下命令继续安装。

代码语言:javascript
复制
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk; 
/opt/cloudera/cm-agent/bin/certmanager --location /var/lib/cloudera-scm-server/certmanager setup --configure-services --signed-ca-cert=cm_cert_chain.pem

启动Cloudera Manager,它应该以TLS端口7183上的UI开头。如果已将签名的中间证书导入到客户端浏览器的truststore中,那么您应该不会看到任何警告。在下面的屏幕快照中,“ Vkarthikeyan Internal Root CA”是根证书。该证书已被系统信任,并已签署Cloudera中间CA。

选项2b –使用现有证书启用Auto-TLS

如果您有需要启用Auto-TLS的现有集群,或者需要获得由公司现有CA单独签名的主机证书,请使用以下方法。此选项增加了为任何新主机生成证书并通过API请求上传到Cloudera Manager的操作开销。在此选项中,将暂存由CA签名的证书,并通过调用Cloudera Manager API启用Auto-TLS。

1) 在Cloudera Manager服务器中创建Auto-TLS目录/opt/cloudera/AutoTLS 。该目录必须由cloudera-scm 用户拥有。

2) 为每个主机创建一个公用/专用密钥,并生成相应的证书签名请求(CSR)。由公司的证书颁发机构(CA)签署这些CSR。

3) 在CM服务器上准备公司CA签署的所有证书。在此示例中,所有证书都位于/tmp/auto-tls 目录下。用于keystore和truststore的密码分别存在于key.pwd 和 truststore.pwd 文件中。

4) 如下运行Cloudera Manager API

代码语言:javascript
复制
curl -i -v -uadmin:admin -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{

"location" : "/opt/cloudera/AutoTLS",

"customCA" : true,

"interpretAsFilenames" : true,

"cmHostCert" : "/tmp/auto-tls/certs/ccycloud-7.vcdp71.root.hwx.site.pem",

"cmHostKey" : "/tmp/auto-tls/keys/ccycloud-7.vcdp71.root.hwx.site-key.pem",

"caCert" : "/tmp/auto-tls/ca-certs/cfssl-chain-truststore.pem",

"keystorePasswd" : "/tmp/auto-tls/keys/key.pwd",

"truststorePasswd" : "/tmp/auto-tls/ca-certs/truststore.pwd",

"hostCerts" : [ {

"hostname" : "ccycloud-7.vcdp71.root.hwx.site",

"certificate" : "/tmp/auto-tls/certs/ccycloud-7.vcdp71.root.hwx.site.pem",

"key" : "/tmp/auto-tls/keys/ccycloud-7.vcdp71.root.hwx.site-key.pem"

}, {

"hostname" : "ccycloud-3.vcdp71.root.hwx.site",

"certificate" : "/tmp/auto-tls/certs/ccycloud-3.vcdp71.root.hwx.site.pem",

"key" : "/tmp/auto-tls/keys/ccycloud-3.vcdp71.root.hwx.site-key.pem"

}, {

"hostname" : "ccycloud-2.vcdp71.root.hwx.site",

"certificate" : "/tmp/auto-tls/certs/ccycloud-3.vcdp71.root.hwx.site.pem",

"key" : "/tmp/auto-tls/keys/ccycloud-3.vcdp71.root.hwx.site-key.pem"

}, {

"hostname" : "ccycloud-1.vcdp71.root.hwx.site",

"certificate" : "/tmp/auto-tls/certs/ccycloud-1.vcdp71.root.hwx.site.pem",

"key" : "/tmp/auto-tls/keys/ccycloud-1.vcdp71.root.hwx.site-key.pem"

} ],

"configureAllServices" : "true",

"sshPort" : 22,

"userName" : "root",

"password" : "cloudera"

}' 'http://ccycloud-7.vcdp71.root.hwx.site:7180/api/v41/cm/commands/generateCmca'

5) 此API成功返回后,您应该看到最近运行的命令如下。

6) 当这个API是执行,您可以检查/var/log/cloudera-scm-server/cloudera-scm-server.log 的API日志,也是certmanager 在日志中的/var/log/cloudera-scm-agent/certmanager.log。

7) 重新启动CM服务。然后在所有集群服务器上重新启动CM agent

8) CM UI / API现在将在TLS端口上可用。现在重新启动所有Cloudera Manager管理服务。

9) 重新启动集群服务。现在,所有服务都已配置为有线加密。

10) 将新主机添加到此集群时,需要执行以下附加步骤,以将CA签名的主机证书上载到CM。

o “添加主机”向导将提示以下屏幕,其中包含有关上载证书的说明。

o 使用以下命令将证书上载到CM。

代码语言:javascript
复制

curl -uadmin:admin -X POST --header 'Content-Type:
application/json' --header 'Accept: application/json' -d '{
  "location": "/opt/cloudera/AutoTLS",
  "interpretAsFilenames": true,
  "hostCerts": [ {
      "hostname": "ccycloud-10.vcdp71.root.hwx.site",
      "Certificate":
"/tmp/auto-tls/certs/ccycloud-10.vcdp71.root.hwx.site.pem",
      "Key":
"/tmp/auto-tls/certs/ccycloud-10.vcdp71.root.hwx.site.pemm"
    } ]
}' 'https://ccycloud-7.vcdp71.root.hwx.site:7183/api/v41/cm/commands/addCustomCerts'

o 照常继续添加主机。

在此示例中,用于签署所有证书的CA是“Sec Lab Intermediate CA”,可以在下面的屏幕快照中找到–

Cloudera Manager UI

KnoxUI

新集群部署

使用以上任何选项,在启用了Auto-TLS的CM上创建新集群时,您可以重用现有的TLS设置。当启动向导创建新集群时,应该看到以下消息。现在,当您部署集群时,所有服务都将通过有线加密自动配置。

总结

Auto-TLS功能不仅可以加快有线加密的初始设置,还可以自动执行集群的将来TLS配置步骤。下表总结了此博客中描述的选项之间的差异。

步骤

HDP / EDH (手动)

CDP DC选项1

CDP DC选项2a

CDP DC选项2b

生成CSR

手动

自动化

自动化

手动

CA签署的CSR

手动

自动化

一次性

手动

将证书部署到所有主机

手动

自动化

自动化

自动化

每个服务的配置

手动

自动化

自动化

自动化

集群重启

多次

一次性

一次性

一次性

配置步骤

手动

自动化

自动化

自动化

新服务的步骤

手动

自动化

自动化

自动化

新的主机证书生成

手动

自动化

自动化

手动

Auto-TLS功能极大地减少了集群TLS管理的开销,从而提供了增强的安全性并减少了操作开销,并帮助您专注于客户及其工作负载。喜欢你看到的吗?立即试用 新的Cloudera数据平台数据中心!

原文链接:https://blog.cloudera.com/auto-tls-in-cloudera-data-platform-data-center/

原文作者:Vijay Karthikeyan

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档