如何为HttpFS服务配置SSL

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的

内容概述

1.生成Keystore文件

2.配置HttpFS服务SSL并验证

3.Java客户端访问及测试

4.总结

测试环境

1.CentOS7.2

前置条件

1.集群未启用Kerberos

2.生成KeyStore文件

在keystore里,包含两种数据:

密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)

可信任的证书实体(trusted certificate entries)——只包含公钥

这里我们使用Java提供的Keytool证书管理工具来生成一个Keystore文件。

在部署了HttpFS服务的节点上,执行如下命令生成KeyStore文件

(可左右滑动)

这里需要注意几个地方,需要输入密码和CN(CN必须为HttpFS服务所在节点的hostname)。

执行成功后证书文件默认生成在/var/lib/hadoop-httpfs目录下的.keystore文件:

完成证书文件的生成后,接下来通过ClouderaManager界面为HttpFS服务配置SSL。

3.配置SSL

1.使用管理员用户登录Cloudera Manager的WEB界面

进入HDFS服务配置页面,范围选择“HttpFS”,类别选择“安全性”

2.配置启用SSL和Keystore文件

保存配置,回到CM主页根据提示重启相应服务。

4.验证配置是否生效

1.浏览器验证是否能正常访问HDFS文件列表,查看HDFS根目录下所有文件

请求成功,使用的是https

2.通过curl查看是否正常访问

(可左右滑动)

5.Java客户端访问

1.将HttpFS服务器上的.keystore证书下载至本地命名为httpfs.keystore

2.使用Maven创建一个java工程,pom.xml文件中增加如下依赖

(可左右滑动)

3.编写访问HttpFS的示例代码

(可左右滑动)

4.示例运行结果

6.常见问题

运行时报如下异常

(可左右滑动)

异常原因:

1.在生成keystore文件时未指定CN为HttpFS服务所在节点的hostname

2.直接访问HttpFS服务的IP地址导致,需要配置hosts文件

7.总结

在生成HttpFS服务的keystore文件时CN信息必须为该服务的hostsname,否则会报错

在访问时需要配置本地的hosts文件

GitHub地址:

https://github.com/fayson/cdhproject/blob/master/hdfsdemo/src/main/java/com/cloudera/hdfs/nonekerberos/HttpFSSSLDemo.java

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180115G00JCF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券