背景:MinIO本身是使用HTTP进行登录的,由于业务使用生态要求本身的资源是HTTPS的,同时了解到Https是以安全为目标的HTTP通道,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL,因此提出对MinIO升级HTTPS的认证方案。
HTTPS简介:
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
技术方案:
一、创建TLS证书
1、创建openssl.conf写入如下配置(ip&dns更改为本机)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = Somewhere
O = MyOrg
OU = MyOU
CN = MyServerName
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 127.0.0.1
DNS.1 = localhost
2、生成证书
${HOME}/.minio/certs
openssl req -new -x509 -nodes -days 730 -keyout private.key -out public.crt -config openssl.conf
3、导入证书
keytool -import -alias public -keystore cacerts -file public.crt
密钥:changeit
keytool -list -keystore cacerts -alias public
二、证书加入jdk目录使证书受信
1、在jdk目录导入证书
keytool -import -alias public -keystore cacerts -file /root/.minio/certs/public.crt
密钥:changeit
三、更改文件服务配置端口
vi /data/bigdata/apps/filesrv-3.0.0/conf/main.properties
minio.endpoint=http://10.106.215.93:9009/
更改为
minio.endpoint=https://10.106.215.93:9009/
四、重启minio
重启文件服务
注:文件服务为由我自行封装的小应用,一般生成完证书即可,需要java操作minio则需要把生成的.key文件指向到jdk目录jre/lib/security下详见模块“二”