开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术:配置 HDFS-配置 https 证书以及 ssl 配置文件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/708/detail/12565
配置 HDFS-配置 https 证书以及 ssl 配置文件
内容介绍:
一、创建 HTTPS 证书
二、配置 ssl-server.xml 和 ssl-client.xml
一、创建 HTTPS 证书
1.在 cdho 上
#1
mkdir /etc/security/cdh.https
创建 HTTPS 的目录,存放在 etc/security /cdh.https 目录下面。
cd /ete/security/cdh.https
cd 到它里面,可以看到目前还是一个空的文件。
#2
openssl req -new -x509 -keyout bd_ca_key -out bd_ca_cert-days 9999 -subj
/C=CN/ST=bei1ing/L=bei1ing/0=test/0U=test/CN=test”
(输入密码和确认密码是123456,此命令成功后输出 bd ca kev 和 bd ca_cert 两个文件)
>>>
=rw-r==r-- 1 root root 1294 Sep 26 11:31 bd_ca_cert
-rw-r--r-- 1 root root 1834 Sep 26 11:31 bd_ca_key
进行分段复制,分别执行,运行,会需要输入两次密码再继续运行(密码输入123456就可以)
这是会发现文件夹得到了两个文件,进去后会发现一个 cdh.https 的目录,再将两个基本文件复制过去。
使用之后看到这个文件夹就得到了两个文件,一个 bd-ca-cert 文件,一个 bd-ca-key 文件,这两个文件是作为最基础的文件,首先在 CD 上一层目录,看到这里面有 cdh.https 的目录,把这个目录来 scp-r 复制到 cdh1: pMd 对应的目录下,在复制到 cdh2: pMd 对应的目录下,把两个基本文件再复制过去,然后再 cd 进去目录里面接着执行。
# 3
将得到的两个文件复制到 cdh1cdh2上
scp-r/etc/security/cdh.httpscdh1:/etc/security/
scp-r/etc/security/cdh.https cdh2:/etc/security/
2.在 cdhocdh1cdh2每个节点上都依次执行以下命令
cd /etc/security/cdh.https
#所有需要输入密码的地方全部输入123456(方便起见,如果你对密码有要求请自行修改)
#1
输入密码和确认密码:123456,此命令成功后输出 kevstore 文件
keytool -keystore keystore -alias localhost -validity 9ggg -genkey-keyalg RSA -keysize 2048 -dname"CN=test, ou=test, O=test. L=beijing, ST=beijing. C=CN”
输入密码统一是123456,输入完成后会发现多出来 keystore 文件
#2
输入密码和确认密码:123456,提示是否信任证书:输入 yes,此命令成功后输出 truststore 文件
keytool -keystore truststore -alias CARoot -import -file bd ca cert
输入完成后会询问是否信任这个证书,信任以后会发现 keystore 已经被更新了,得到了 trust store 文件。
# 3
输入密码和确认密码:123456,此命令成功后输出 cert 文件
keytool -certreg -alias localhost -keystore keystore -file cert
复制粘贴运行,会发现得到了 cert 文件
#4
此命令成功后输出 cert_signed 文件
openss1 x509-reg-CA bd_ca_cert -CAkey bd_ca_key-in cert -out cert_signed -days 9999 -CAcreateserial - passin pass:123456
复制粘贴运行,会发现得到了 cert signed 文件
#5
输入密码和确认密码:123456,是否信任证书,输入 ves,此合令成功后更新 kevstore 文件
keytool -keystore keystore -alias CARoot -import -file bd_ca_cert
输入密码,并且信任证书
# 6
输入密码和确认密码:123456
keytool -keystore keystore -alias localhost -import -file certsigned
最终得到:
-rw-r==r-- 1 root root 1294 Sep 26 11:31 bd_ca_cert
-rw-r--r-- 1 root root 17 Sep 2611:36 bd_ca_cert.srl
-rw-r--r-- 1 root root 1834 Sep 26 11:31 bd_ca_key
-rw-r==r== 1 root root 1081 Sep 26 11:36 cert
-rw-r--r-- 1 root root 1176 Sep26 11:36 certsianed
-rw-r--r-- 1rootroot 4055 Sep 26 11:37kevstore
-rw-r=-r== 1 root root 978 Sep 26 11:35 truststore
最终会得到7个这样文件。
这一步执行完之后,同样需要进入 cdh1来去接着执行刚刚那些操作,进来后现在只有这两个最基本的文件,把这一套流程再来一遍,同样得到了7个文件。
接下来同样需要进入 cdh2来执行,还是需要按照刚开始的流程来操作,同样得到了7个文件。
二、配置 ssl-server.xml 和 ssl-client.xml
刚刚配置到的 https 证书以及设置的密码等等在这里就用上场了
统一 cd 到 bigdata/hadoop-2.6.0-cdh5.14.4/etc/hadoop 下面,
可以看到这里有 ssl-client 还有 ssl-server,但他们都是 example,需要把他们复制出来。
1.ssl-sserver.xml 如下:
<configurations
<property>
<name>ssl.server.truststore.location</names>
<ivalue>/etc/security/cdh.https/truststores/values>
<description*Truststore to be used byNN and DN. Must be specified.
</description>
</property>
<property>
<name>ssl.servertruststorepassword</name>
<value>:123456c/value>
<descriptian>Optional. Default value is "".
</description>
</property>
<property>
<name>ssl.server.truststore.type</name>
<value>jks</value>
<description>0ptional. The keystore file format, default value
is "jks".
</description>
</property>
<property>
<name>ssl.server.truststore.reload.interval</name>
<value>10000</value>
<description>
Truststore reload check interval in milliseconds.
Default value is ecee (10 seconds).
<descriptions<
</property>
<property>
<name>ssl.server.keystorelocation</names
<value>/etc/security/cdhhttps/keystores/value>
<description>Keystore to be used byNN and DN. Must be specified.
</description>
</propertys
<property>
<name>ssl.serverkeystore passwords/name>
<value>123456-/values
<description>Must be specified.
</description>
</property>
<property>
<name>ss1.server.keystore.keypassword-/name>
<value>123456</values
<description> Must be specified.
</descriotion>
<property>
<name>sslserverexcludecipherlist</name>
<value>TLS ECDHE RSA WETH RC4 128 SHASSL DHE RSA EXPORT WITH DES4B CBC SHA. SSL_RSA_WITH DES_CBC_SHASSLDHERSA_WITH_DES_CBC_SHA
SSL RSA EXPORT WITH RC4 40 MDS SSLRSA EXPORT WITH DES4 CBC SHA
SSLRSA WITH RC4 128 MD5</value>
<descriptian>Üptional. The weak security cipher suites that you want excluded
from ssL communication.</description>
</property>
</configuration>
配置 server,把后面 example 去掉,进行编辑,将以上代码进行复制,保存(以上就是刚刚创建 https 证书所用的代码,比如 truststores 文件在哪,密码是什么, keystores 的文件在哪里,它的密码是什么,ssl 相关内容)
2、配置 client,同样把后面 example 去掉,同样把配置文件粘贴复制。
3、配置 slaves
这里需要把两个 slaves 文件加进来 cdh1.itcast.cn cdh2itcast.cn
4、将 HDFS 相关配置文件复制到其他节点
scp hadoop-env.sh yarn-env.sh mapred-env.sh core-site.xml hdfs-site.xml ssl-client.xml ssl-server.xml slaves cdh1:/bigdata/hadoop-2.6.0-cdh5.14.4/etc/hadoop/
scp hadoop-env.sh varn-env.sh mapred-env.sh core-site.xml hdfs-site.xml ssl-client.xml ssl-server.xml slaves cdh2:/bigdata/hadoop-2.6.0-cdh5.14.4/etc/hadoop/
直接scp*cdh1:对应的目录下,以上完成之后,所有的节点就已经保存了。