版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43215250/article/details/83383201
使用自签名证书获取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
。请勿在步骤2中使用为密钥库创建的密码。$ 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
自签名证书设置已完成!