现有CDP-DC集群怎么启用Auto-TLS

这篇文章给大家介绍现有CDP-DC集群怎么启用Auto-TLS,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元铜陵做网站,已为上家服务,为铜陵各地企业和个人服务,联系电话:028-86922220

文档编写目的
下面主要介绍如何在现有的  CDP-DC  集群上启用  TLS  。
内容概述
1) TLS概述
2) Level-0:基础TLS/SSL配置(在CM server主机上进行)
3) Level-1:为集群启用加密
测试环境
1) CM和Cloudera Runtime版本为7.1.1
2) Redhat7.7
3) 拥有Cloudera Manager的管理员账号
4) 集群未启用Kerberos和LDAP认证
现有CDP-DC集群怎么启用Auto-TLS
现有CDP-DC集群怎么启用Auto-TLS

 
TLS概述
背景  
部署了Kerberos之后,CM会提示有安全隐患,至少需要一级TLS加密。
现有CDP-DC集群怎么启用Auto-TLS
现有CDP-DC集群怎么启用Auto-TLS
介绍
传输层安全性(  TLS  )在  ClouderaManager  服务器和代理之间的通信中提供加密和身份验证。      加密可防止通信侦听,并且身份验证有助于防止恶意服务器或代理在群集中引起问题。  Cloudera Manager  支持三种级别的  TLS  安全性,三种必须逐级配置。
  • 级别1(好) - 此级别仅配置浏览器和ClouderaManager之间以及代理和ClouderaManager服务器之间的加密通信。请参阅仅为Cloudera Manager配置TLS加密,然后按照级别1:为Cloudera Manager代理配置TLS加密,以获取说明。 1级加密可以防止对代理和Cloudera Manager之间的通信进行窥探。

  • 级别2(更好) - 此级别包括代理和服务器之间的加密通信,以及代理对Cloudera Manager服务器证书的强大验证。请参阅第2级:由代理配置ClouderaManager服务器的TLS验证。级别2通过验证由Cloudera Manager服务器提供的证书的信任,为代理提供额外的安全级别。

  • 级别3(最佳) - 代理和服务器之间的加密通信。3级TLS包括代理和服务器之间的加密通信,由代理对Cloudera Manager服务器证书进行强大的验证,并使用自签名或CA签名的证书将代理验证到Cloudera Manager服务器。请参阅第3级:将代理的TLS验证配置到Cloudera Manager服务器。级别3解决了不受信任的网络场景,您需要防止群集服务器被主机上运行的不受信任的代理人欺骗。 Cloudera建议您在启用Kerberos身份验证之前,为不受信任的网络环境配置3级TLS加密。这提供了Cloudera Manager服务器和集群中经过验证的代理之间的keytab的安全通信。

Cloudera  强烈建议您在开始配置  Cloudera Manager  服务器和代理使用  TLS  之前,设置完整功能的  CDH  群集和  Cloudera Manager  。  Cloudera Manager  将继续接收端口  7180  上的  HTTP  请求(默认值),但一旦启用  TLS  ,它将立即将客户端重定向到端口  7183  以进行  HTTPS  连接。
一旦配置了  3  级  TLS  ,如果要添加运行代理的新主机,则必须手动部署适用于您的平台的  ClouderaManager  代理和守护程序软件包,为主机发出新的证书,配置  /  etc   /  cloudera  -  scm  -agent/config.ini  使用  SSL / TLS  ,然后使主机联机。相反,您可以禁用  TLS  添加主机,配置  TLS  的新主机,然后重新启用适当的配置。任何一种方法都是有效的,根据您的需要。
对于运行代理的所有主机,  Cloudera  建议您首先使用  Java  创建密钥库,然后使用  openSSL  导出密钥和证书以供代理或色相使用。

 
工具概述
Java Keytool和OpenSSL是密钥管理工具,可让您创建TLS / SSL所需的安全工件。除了下面的两个简短概述之外,有关更多信息  ,请参见  “  如何为  TLS / SSL  证书和密钥转换文件编码(  DER  ,  JKS  ,  PEM  )  ”。
Java Keytool
Oracle Java   keytool是Oracle JDK附带的实用程序,用于创建和管理加密密钥和证书。在针对Cloudera Manager集群配置TLS / SSL的过程中,您将创建私有密钥对、密钥库、证书签名请求,并使用此软件工具创建供集群特定使用的信任库,如本指南中各个步骤所述。
Cloudera Manager TLS / SSL配置的Java Keytool要求
对于使用Java Keytool的任何步骤,请确保:
• 使用Oracle Java   keytool而非OpenJDK之类的工具。
• 使用从Oracle下载的JDK或Cloudera Manager服务器主机上此默认路径中的Cloudera提供的Oracle JDK:
/usr/java/jdk1.8.0_232-cloudera/bin/jre/lib/security
• 所有步骤均使用相同版本的Java keytool。如果主机上安装了多个JDK,请设置PATH 变量,以便首先调用Oracle JDK,如本例所示:
export JAVA_HOME=/usr/java/jdk1.8.0_232-cloudera
export PATH=$JAVA_HOME/bin:$PATH
• 在任何调用-keypass 和-storepass两个选项的命令中,请使用和相同的密码。Cloudera Manager要求密钥及其密钥库使用相同的密码。
OpenSSL
OpenSSL是一种开放源代码加密和TLS / SSL工具包,自1999年成立以来已被广泛使用。与Java Keytool一样,OpenSSL允许您创建私钥,证书请求和密钥库,并提供用于验证证书的选项。
在RPC客户端和服务器通信期间,Cloudera Manager Agent主机充当Cloudera Manager Server主机的客户端。代理主机、Hue、Impala和其他基于Python的服务需要PEM格式的密钥和证书(PKCS#8),这就是为什么以下步骤包括使用此工具转换一些JKS工件的原因。有关更多信息,请参见“如何为TLS / SSL证书和密钥转换文件编码(DER,JKS,PEM)”。

 
如何将自签名证书用于TLS
自签名证书不应用于生产部署。自签名证书将在密钥生成过程中创建并存储在指定的密钥库中,并且应替换为已签名证书。使用自签名证书要求生成和分发证书,并为证书建立显式信任。
但是,使用自签名证书可以轻松获取用于TLS / SSL配置的证书,并且可能适用于非生产或测试设置。有关更多信息,请参阅  为  手动配置  加密 。
在下面的命令中为您的系统替换路径,文件名,别名和其他示例。
1) 创建证书目录:
mkdir -p /opt/cloudera/security/x509/ /opt/cloudera/security/jks/
现有CDP-DC集群怎么启用Auto-TLS
向Cloudera Manager授予对目录的访问权限,设置正确的权限,然后更改为目录:
sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/security/jkssudo umask 0700cd /opt/cloudera/security/jks
现有CDP-DC集群怎么启用Auto-TLS
2) 生成密钥对和自签名证书,并使用与密钥库和storepass相同的密码将所有内容存储在密钥库中,如下所示。将当前主机的FQDN用于CN,以避免引发  java.io.IOException  : HTTPS hostname wrong 异常。用适合您的环境的条目替换OU,O,L,ST和C的值:
keytool -genkeypair -alias cmhost -keyalg RSA -keysize 2048 -dname "cn=cm01.example.com, ou=Department,o=Company, l=City, st=State, c=US" -keypass password -keystore example.jks -storepass password

[root@ip-10-0-0-168 jks]# keytool -genkeypair -alias cmhost -keyalg RSA -keysize 2048 -dname "cn=ap-southeast-1.compute.internal, ou=ipausers,> o=Cloudera, l=Shanghai, st=Shanghai, c=CN" -keypass cloudera -keystore example.jks -storepass cloudera
Warning:The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore example.jks -destkeystore example.jks -deststoretype pkcs12".[root@ip-10-0-0-168 jks]#
现有CDP-DC集群怎么启用Auto-TLS
3)    将默认的Java信任库(  cacerts  )复制到备用系统信任库(  jssecacerts  ):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdksource /etc/profilesudo cp $JAVA_HOME/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/jssecacerts
现有CDP-DC集群怎么启用Auto-TLS
4)    从密钥库(  example.jks  )导出证书。
keytool -export -alias cmhost -keystore example.jks -rfc -file selfsigned.cer

[root@ip-10-0-0-168 jks]# keytool -export -alias cmhost -keystore example.jks -rfc -file selfsigned.cerEnter keystore password:  Certificate stored in file 
Warning:The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore example.jks -destkeystore example.jks -deststoretype pkcs12".[root@ip-10-0-0-168 jks]#
现有CDP-DC集群怎么启用Auto-TLS
5)    将自签名证书(  selfsigned.cer  )复制到  /opt/  cloudera  /security/x509/   目录中。
cp selfsigned.cer /opt/cloudera/security/x509/cmhost.pem
现有CDP-DC集群怎么启用Auto-TLS
6)    将公共密钥导入备用系统信任库(  jssecacerts  ),以便在此计算机上使用Java运行的任何进程都将信任该密钥。Java信任库的默认密码为  changeit  。不要使用在步骤2中为密钥库创建的密码。
$ keytool -import -alias cmhost -file /opt/cloudera/security/jks/selfsigned.cer-keystore $JAVA_HOME/jre/lib/security/jssecacerts -storepass changeit
[root@ip-10-0-0-168 jks]# keytool -import -alias cmhost -file /opt/cloudera/security/jks/selfsigned.cerEnter keystore password:  Re-enter new password:Owner: CN=ap-southeast-1.compute.internal, OU=ipausers, O=Cloudera, L=Shanghai, ST=Shanghai, C=CNIssuer: CN=ap-southeast-1.compute.internal, OU=ipausers, O=Cloudera, L=Shanghai, ST=Shanghai, C=CNSerial number: 33f6581eValid from: Sun Jul 19 06:07:24 UTC 2020 until: Sat Oct 17 06:07:24 UTC 2020Certificate fingerprints:     MD5:  41:C5:94:8B:32:D2:95:67:1D:A2:12:75:6E:05:22:E0     SHA1: 8B:BE:F7:7F:75:A0:9B:55:0E:A7:6C:6E:2D:CD:32:CB:79:41:9C:EF     SHA256: 54:ED:FE:C2:FA:89:27:DC:3B:06:27:5C:EA:FB:93:2A:8B:A4:6B:27:4A:6E:13:DF:36:DB:76:E9:DE:33:10:55Signature algorithm name: SHA256withRSASubject Public Key Algorithm: 2048-bit RSA keyVersion: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: 6F C9 8E D3 60 A8 EA 33   BB 44 01 C8 34 5C 14 B1  o...`..3.D..4..0010: E9 CF 6D 1C                                       ..m.]]
Trust this certificate? [no]:  yesCertificate was added to keystore[root@ip-10-0-0-168 jks]#
现有CDP-DC集群怎么启用Auto-TLS
重要
在群集中的每个主机上重复此过程。
7)    重命名密钥库:
mv /opt/cloudera/security/jks/example.jks /opt/cloudera/security/jks/cmhost-keystore.jks
现有CDP-DC集群怎么启用Auto-TLS
8)    您还可以删除证书,因为它已在步骤5中复制到相应的路径。
rm /opt/cloudera/security/jks/selfsigned.cer
现有CDP-DC集群怎么启用Auto-TLS
9)    自签名证书设置完成。

 
CM配置更新
通过CM管理主页面->管理->安全
现有CDP-DC集群怎么启用Auto-TLS
点击Enable Auto-TLS,进入Auto-TLS的配置页面
现有CDP-DC集群怎么启用Auto-TLS
填写配置信息
现有CDP-DC集群怎么启用Auto-TLS
点击下一步:
现有CDP-DC集群怎么启用Auto-TLS
按照提示,登陆到Cloudera-Manager server的服务器上,然后重启Cloudera Manager Server服务。
systemctl restart cloudera-scm-server
待CM Server的服务重启后,继续使用原来的登陆端口登陆,浏览器会自动跳转到7183端口。
现有CDP-DC集群怎么启用Auto-TLS
点击高级
现有CDP-DC集群怎么启用Auto-TLS
点击继续前往…链接,进入到CM的主页面
现有CDP-DC集群怎么启用Auto-TLS
从主页面可以看到,有很多过期配置。点击过期配置需要重启按钮,进行服务重启(集群和CMS服务都需要重启)
现有CDP-DC集群怎么启用Auto-TLS
现有CDP-DC集群怎么启用Auto-TLS
现有CDP-DC集群怎么启用Auto-TLS
如果有更新TLS Certificates信息,则点击Rotate TLS Certificates
现有CDP-DC集群怎么启用Auto-TLS
通过Auto-TLS,可以简单的启动整个集群的TLS,减少了手工配置的复杂度。    

关于现有CDP-DC集群怎么启用Auto-TLS就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页题目:现有CDP-DC集群怎么启用Auto-TLS
网址分享:http://hbruida.cn/article/pjoecd.html