首页 > 其他分享 >MINIO配置TLS访问

MINIO配置TLS访问

时间:2023-07-21 17:45:53浏览次数:38  
标签:TLS MINIO 证书 访问 ----- key out nginx minio

服务端证书生成

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=*.*.*.*" -days 365 -out ca.crt

openssl genrsa -out server.key 2048
openssl req -new -nodes -key server.key -subj "/CN=*.*.*.*" -out server.csr

# 服务端证书生成时,需要设置subjectAltName = IP:172.20.20.203
echo subjectAltName = IP:172.20.20.203 > extfile.cnf
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 3650

 

从key导出pem公钥和私钥:

私钥:openssl rsa -in demo.key -out private.pem
公钥:openssl rsa -in demo.key -pubout -out public.pem

 

客户端连接配置

endpoint := "192.168.77.114:9091"
	user := "minioadmin"
	pass := "minioadmin"

	ca := `-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----`
	k := `-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----`
	c := `-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----`

	pool := x509.NewCertPool()
	pool.AppendCertsFromPEM([]byte(ca))

	var cliCrt tls.Certificate // 具体的证书加载对象
	cliCrt, err := tls.X509KeyPair([]byte(c), []byte(k))
	if err != nil {
		log.Fatalln(err)
	}

	minioClient, err := minio.New(endpoint, &minio.Options{
		Creds:  credentials.NewStaticV4(user, pass, ""),
		Secure: true,
		Transport: &http.Transport{
			TLSClientConfig: &tls.Config{
				RootCAs:      pool,
				Certificates: []tls.Certificate{cliCrt},
			},
		},
	})
	if err != nil {
		log.Fatal(err)
	}

	if err := minioClient.MakeBucket(context.Background(), "demo", minio.MakeBucketOptions{}); err != nil {
		log.Fatal(err)
	}

	fmt.Println(minioClient)


-----------------

3.10.2.创建私钥文件和自签名证书
# mkdir -p ${HOME}/.minio/certs
# cd ${HOME}/.minio/certs
# minio-server
mkdir -p /home/minio-user/.minio/certs/CAs
cd /home/minio-user/.minio/certs/CAs
# nginx-server
mkdir -p /usr/local/nginx/certs/CAs
cd /usr/local/nginx/certs/CAs

# 生成自签名证书, 参数说明
# genrsa 生成rsa私钥文件
# -out 输出文件
# 2048 密钥长度,默认512
# req 证书请求的子命令
# -x509 输出证书
# -new 生成证书请求
# –nodes 表示私钥不加密,若不带参数将提示输入密码
# -key 私钥文件
# -subj 输入证书拥有者信息
# -days 证书有效时间
# -subj 参数 多个参数示例:/C=CN/ST=liaoning/L=dalian/O=minio/CN=minio1.mnmd.net
# C Country, 单位所在国家,为两位数的国家缩写,如: CN 就是中国
# ST State/Province, 单位所在州或省
# L Locality, 单位所在城市 / 或县区
# O Organization, 此网站的单位名称
# OU Organization Unit, 下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等
# CN Common Name, 网站的域名

# 生成证书前可以先修改配置文件(选),参考 3.10.1

# nginx 代表的是客户
# minio1/minio2/minio3/minio4 代表的是服务器
# 1.生成CA证书(认证中心)
# 私钥
openssl genrsa -out ca.key 2048
# 公钥
openssl req -x509 -new -nodes -key ca.key -subj "/CN=minio.nginx.mnmd.net" -out ca.crt -days 3650

# 2.生成服务器证书请求
# 私钥
openssl genrsa -out server.key 2048
# 公钥
openssl req -new -nodes -key server.key -subj "/CN=minio.nginx.mnmd.net" -out server.csr

# 3.利用CA证书签名生成服务器证书
echo subjectAltName = DNS:minio*.mnmd.net > extfile.cnf
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 3650

# minio服务中是服务器证书
# 将生成的 `private.key` 和 `public.crt` 放到 `/usr/local/nginx/certs/CAs` 和 `/home/minio-user/.minio/certs/CAs` 路径下

# 授予minio-user用户组
chown -R minio-user:minio-user /home/minio-user/.minio/certs/CAs

# 重新启动nginx
/usr/local/nginx/nginx -s quit
/usr/local/nginx/nginx -c /usr/local/nginx/minio-cluster.conf

# 重新启动minio
systemctl restart minio.service

3.10.3.查看证书是否有效
openssl x509 -in /usr/local/nginx/certs/CAs/public.crt -noout -text
openssl x509 -in /home/minio-user/.minio/certs/CAs/public.crt -noout -text
————————————————
版权声明:本文为CSDN博主「琴 韵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012549626/article/details/128067218

标签:TLS,MINIO,证书,访问,-----,key,out,nginx,minio
From: https://www.cnblogs.com/cheyunhua/p/17572063.html

相关文章

  • Angular Component Class 成员属性默认的访问权限控制
    在Angular中,如果在一个ComponentClass的成员上没有明确使用访问修饰符(如private、public或protected),则默认的访问控制是public。Public访问修饰符表示成员可以从任何地方进行访问,包括类内部、类外部以及派生类。当没有显式地指定访问修饰符时,TypeScript(Angular使用的基础语言)会......
  • Linux shell | 竖线管道符号放变量 无法访问'|': 没有那个文件或目录 无法访问'wc':
    工作中遇到一个实际问题,文本编码转换。原始命令:catutf8.log|iconv-c-fUTF-8-tGBK|teegbk.log因为某种(方便修改、方便替换)原因,想把“|iconv-c-fUTF-8-tGBK|”命令这段,想放到变量里,做到一处修改处处生效的效果。pipe="|iconv-c-fUTF-8-tGBK|"catutf......
  • [Linux][报错解决] 使用固定ip导致无法访问网络
    起因之前试了试代码......
  • .net core webapi 局域网内机器可以互相访问
    1、  使用localhost的方式运行程序  dotnetFitnessequipment.dll--urls=http://localhost:5038    是无法通过ip访问的,只可以使用localhost访问    2、以ip方式运行程序,dotnetFitnessequipment.dll--urls=http://192.168.3.213:5038     ......
  • 在调试状态下使用本机ip访问webapi
    1、在调试模式下无法通过ip访问webapi,但是可以使用localhost或者127.0.0.1加端口访问   2、因为在调试模式下运行它,Vs2022默认正在使用IIS-Express。默认情况下,IIS-Express仅绑定到localhost. 3、为了调试状态可以通过ip访问,需要打开位于以下位置的IIS-Express应用......
  • GitHub打不开、访问困难?试试FastGithub轻松解决!
    在软件开发和技术领域,GitHub是一个非常重要的版本控制和项目协作平台。然而,由于网络问题或其他因素,有时我们可能会遇到无法访问GitHub或访问速度缓慢的情况。这时候,FastGithub就成为了解决这些问题的利器。FastGithub介绍FastGithub是一个开源项目,它通过自动获取与GitHub......
  • 热烈欢迎苏州派维斯信息总经理李华康一行访问璞华科技
    2023年7月17日,璞华科技荣幸地接待了苏州派维斯信息科技有限公司(以下简称“派维斯信息”)总经理李华康一行的到访。派维斯信息负责人&创始人李华康先生是西交利物浦大学副教授/日本会津大学计算机科学博士。参加过江苏省“六大人才高峰”高层次人才项目:基于知识图谱的物流问答技......
  • win nginx 用include管理多个配置文件,如部署多个web前端程序 配置host域名访问
    当要部署多个web程序时,先将web程序分文件夹到html, 1在conf目录下新建conf-test/test_web.conf内容为:server{ listen80; server_namewebone.com; location/{ roothtml/web1; indexindex.htmlindex.htm; }}server{ listen80; serve......
  • 什么是外网访问内网?外网如何访问服务器?
    一、什么是外网访问内网?内网就是局域网,通过路由器把不同的电脑和设备连接起来,这些电脑和设备就是一个内网。在内网中的电脑和设备可以通过路由器分配的内网地址,互相访问,比如:可以共享文件、可以共享打印、可以使用应用软件、可以做视频监控等等;外网是与内网相反的一个名次,外网也是广......
  • Rslinx 通过Gateway连接其他PC上的Rslinx Classic Gateway访问现场PLC
    1.在其中一台PC上开启Gateway2.添加IP访问限制3.在客户端上配置驱动选择RemoteDevicesviaLinxGateway4.设置好名称后点击Browse浏览网络中的Gateway5.配置完成在左侧树形菜单可以访问到在logix5000也可以通过这个路劲访问  使用此方式可以大幅降低PLC的......