使用自簽名證書進行TLS
阿新 • • 發佈:2018-12-07
使用自簽名證書獲取TLS/SSL配置的證書,用於非生產或測試環境。
-
建立證書的目錄
$ mkdir -p /opt/cloudera/security/x509/ /opt/cloudera/security/jks/
訪問該目錄,並設定正確的許可權,然後切換到jks目錄下:
$ sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/security/jks $ sudo umask 0700 $ cd /opt/cloudera/security/jks
-
生成金鑰對和自簽名證書
金鑰庫和storepass使用相同密碼並將內容儲存在金鑰庫。
使用CN的當前主機的FQDN來避免引發java.io.IOException:HTTPS主機名錯誤例外。
使用你需要的值替換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=CN" -keypass password -keystore example.jks -storepass password
-
複製預設Java信任庫(cacerts中)到備用系統信任庫(jssecacerts)
$ sudo cp $JAVA_HOME/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/jssecacerts
-
從金鑰庫中匯出證書(example.jks)
$ keytool -export -alias cmhost -keystore example.jks -rfc -file selfsigned.cer
-
複製自簽名證書
將自簽名證書(selfsigned.cer)複製到 /opt/cloudera/security/x509/目錄下$ cp selfsigned.cer /opt/cloudera/security/x509/cmhost.pem
-
將公鑰匯入備用系統信任庫(jssecacerts)
這臺機器上用Java執行的任何程序都會信任該金鑰。Java信任庫的預設密碼是changeit
$ keytool -import -alias cmhost -file /opt/cloudera/security/jks/selfsigned.cer -keystore $JAVA_HOME/jre/lib/security/jssecacerts -storepass changeit
重點: 叢集中的每個節點重複此過程。
-
重新命名金鑰庫
$ mv /opt/cloudera/security/jks/example.jks /opt/cloudera/security/jks/cmhost-keystore.jks
您可以刪除證書,因為在步驟5中已將它複製到相應的路徑。
$ rm /opt/cloudera/security/jks/selfsigned.cer
自簽名證書設定已完成!