現(xiàn)有CDP-DC集群啟用Auto-TLS
文檔編寫目的本文主要介紹如何在現(xiàn)有的CDP-DC集群上啟用TLS。內(nèi)容概述1) TLS概述2) Level-0:基礎(chǔ)TLS/SSL配置(在CM server主機(jī)上進(jìn)行)3) Level-1:為集群啟用加密測試環(huán)境1) CM和Cloudera Runtime版本為7.1.12) Redhat7.73) 擁有Cloudera Manager的管理員賬號4) 集群未啟用Kerberos和LDAP認(rèn)證TLS概述背景部署了Kerberos之后,CM會提示有安全隱患,至少需要一級TLS加密。介紹傳輸層安全性(TLS)在ClouderaManager服務(wù)器和代理之間的通信中提供加密和身份驗(yàn)證。 加密可防止通信偵聽,并且身份驗(yàn)證有助于防止惡意服務(wù)器或代理在群集中引起問題。Cloudera Manager支持三種級別的TLS安全性,三種必須逐級配置。Cloudera強(qiáng)烈建議您在開始配置Cloudera Manager服務(wù)器和代理使用TLS之前,設(shè)置完整功能的CDH群集和Cloudera Manager。
Cloudera Manager將繼續(xù)接收端口7180上的HTTP請求(默認(rèn)值),但一旦啟用TLS,它將立即將客戶端重定向到端口7183以進(jìn)行HTTPS連接。一旦配置了3級TLS,如果要添加運(yùn)行代理的新主機(jī),則必須手動部署適用于您的平臺的ClouderaManager代理和守護(hù)程序軟件包,為主機(jī)發(fā)出新的證書,配置/etc /cloudera-scm-agent/config.ini使用SSL / TLS,然后使主機(jī)聯(lián)機(jī)。相反,您可以禁用TLS添加主機(jī),配置TLS的新主機(jī),然后重新啟用適當(dāng)?shù)呐渲?。任何一種方法都是有效的,根據(jù)您的需要。對于運(yùn)行代理的所有主機(jī),Cloudera建議您首先使用Java創(chuàng)建密鑰庫,然后使用openSSL導(dǎo)出密鑰和證書以供代理或色相使用。工具概述Java Keytool和OpenSSL是密鑰管理工具,可讓您創(chuàng)建TLS / SSL所需的安全工件。
除了下面的兩個簡短概述之外,有關(guān)更多信息,請參見“如何為TLS / SSL證書和密鑰轉(zhuǎn)換文件編碼(DER,JKS,PEM)”。Java KeytoolOracle Java keytool是Oracle JDK附帶的實(shí)用程序,用于創(chuàng)建和管理加密密鑰和證書。在針對Cloudera Manager集群配置TLS / SSL的過程中,您將創(chuàng)建私有密鑰對、密鑰庫、證書簽名請求,并使用此軟件工具創(chuàng)建供集群特定使用的信任庫,如本指南中各個步驟所述。Cloudera Manager TLS / SSL配置的Java Keytool要求對于使用Java Keytool的任何步驟,請確保:? 使用Oracle Java keytool而非OpenJDK之類的工具。
使用從Oracle下載的JDK或Cloudera Manager服務(wù)器主機(jī)上此默認(rèn)路徑中的Cloudera提供的Oracle JDK:/usr/java/jdk1.8.0_232-cloudera/bin/jre/lib/security? 所有步驟均使用相同版本的Java keytool。如果主機(jī)上安裝了多個JDK,請?jiān)O(shè)置PATH 變量,以便首先調(diào)用Oracle JDK,如本例所示:export JAVA_HOME=/usr/java/jdk1.8.0_232-clouderaexport PATH=$JAVA_HOME/bin:$PATH? 在任何調(diào)用-keypass 和-storepass兩個選項(xiàng)的命令中,請使用和相同的密碼。Cloudera Manager要求密鑰及其密鑰庫使用相同的密碼。OpenSSLOpenSSL是一種開放源代碼加密和TLS / SSL工具包,自1999年成立以來已被廣泛使用。
與Java Keytool一樣,OpenSSL允許您創(chuàng)建私鑰,證書請求和密鑰庫,并提供用于驗(yàn)證證書的選項(xiàng)。在RPC客戶端和服務(wù)器通信期間,Cloudera Manager Agent主機(jī)充當(dāng)Cloudera Manager Server主機(jī)的客戶端。代理主機(jī)、Hue、Impala和其他基于Python的服務(wù)需要PEM格式的密鑰和證書(PKCS#8),這就是為什么以下步驟包括使用此工具轉(zhuǎn)換一些JKS工件的原因。有關(guān)更多信息,請參見“如何為TLS / SSL證書和密鑰轉(zhuǎn)換文件編碼(DER,JKS,PEM)”。如何將自簽名證書用于TLS自簽名證書不應(yīng)用于生產(chǎn)部署。自簽名證書將在密鑰生成過程中創(chuàng)建并存儲在指定的密鑰庫中,并且應(yīng)替換為已簽名證書。使用自簽名證書要求生成和分發(fā)證書,并為證書建立顯式信任。
但是,使用自簽名證書可以輕松獲取用于TLS / SSL配置的證書,并且可能適用于非生產(chǎn)或測試設(shè)置。有關(guān)更多信息,請參閱為 手動配置 加密 。在下面的命令中為您的系統(tǒng)替換路徑,文件名,別名和其他示例。1) 創(chuàng)建證書目錄:mkdir -p /opt/cloudera/security/x509/ /opt/cloudera/security/jks/向Cloudera Manager授予對目錄的訪問權(quán)限,設(shè)置正確的權(quán)限,然后更改為目錄:sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/security/jkssudo umask 0700cd /opt/cloudera/security/jks2) 生成密鑰對和自簽名證書,并使用與密鑰庫和storepass相同的密碼將所有內(nèi)容存儲在密鑰庫中,如下所示。將當(dāng)前主機(jī)的FQDN用于CN,以避免引發(fā)java.io.IOException: HTTPS hostname wrong 異常。
用適合您的環(huán)境的條目替換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 clouderaWarning: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]#3) 將默認(rèn)的Java信任庫(cacerts)復(fù)制到備用系統(tǒng)信任庫(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/jssecacerts4) 從密鑰庫(example.jks)導(dǎo)出證書。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
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時
需注明出處:新網(wǎng)idc知識百科