一、安装openssl
Ⅰ、windows平台
1、下载安装包
2、安装openssl
windows平台建议通过上述方式二下载安装包,然后默认安装即可,安装完成后配置环境变量
如图则配置成功
Ⅱ、linux平台
输入whereis openssl
检查系统是否自带openssl,若没有则参考该文安装
二、生成自签名CA证书和私钥
Ⅰ、windows平台
1、生成私钥
在指定文件夹下如:D:\desktop文件夹(本文都以该文件夹为例),运行下面脚本
openssl genrsa -out private.key 2048
说明:
- -out [输出文件名称]:如 -out D:\desktop\private.key
- 2048:密钥位长
2、生成自签名证书
(1)在指定文件夹(D:\desktop)编写openssl.conf文件,并保存
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = CN
ST = ShannXi
L = Xi'an
O = roc
OU = development
CN = roc.minio.com
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.10
DNS.1 = 192.168.1.10
说明
[1] 基本信息(可以随便写)
[req_distinguished_name]
C = CN # 国家
ST = ShannXi # 省份
L = Xi'an # 市区
O = roc # 组织/公司名称
OU = development # 组织单位
CN = roc.minio.com # common name
[2] 下面两个配置很关键,ip和dns必须填写实际需要配置https的IP地址,否则会报登录证书ip和服务器IP不一致的错误
[alt_names]
IP.1 = 192.168.1.10 # 服务器ip地址,这里指minio服务ip
DNS.1 = 192.168.1.10 # 服务器dns地址,这里指minio服务dns
(2)生成证书
在openssl.conf目录下执行一下脚本
openssl req -new -x509 -nodes -days 730 -key private.key -out public.crt -config openssl.conf
参数说明
- openssl:生成、管理证书、密钥等文件的命令行工具
- req -x509:X.509是SSL和TLS密钥和证书管理的一种标准,这里使用X.509标准为证书签字
- -nodes:设置OpenSSL跳过使用密码短语保护证书的选项,我们需要Apache能够在服务器启动时读取文件,而无需用户干预。密码短语可以防止这种情况发生
- -days 730:设置证书有效时间,这里设置为两年
- -newkey rsa:2048:同时生成证书和一个2048位长的密钥
- -key:私钥存储位置
- -out:证书存储位置
- -config 证书配置文件位置
Ⅱ、linux平台
1、生成私钥
输入以下脚本,并设置密码(密码需要添加到环境变量,如12345678),说明:这里使用des3加密算法
openssl genrsa -des3 -out private.key 2048
2、生成自签名证书
(1)编写openssl.conf文件(与上面windows相同)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = CN
ST = ShannXi
L = Xi'an
O = roc
OU = development
CN = roc.minio.com
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.10
DNS.1 = 192.168.1.10
(2)生成证书
在openssl.conf目录下执行以下脚本
openssl req -new -x509 -nodes -days 730 -key private.key -out public.crt -config openssl.conf
(3)将上面生成私钥时设置的密码添加到环境变量中
vim /etc/profile
在最后面加上以下脚本,12345678是生成私钥时设置的密码示例,根据实际情况替换成你自己设置的密码
export MINIO_CERT_PASSWD=12345678
如图
三、配置minio https支持
Ⅰ、windows平台
1、防火墙开启443、9000、9001端口
点击下一页直至完成。
2、将步骤二生成的私钥和证书拷贝到minio服务器上的C:\Users[用户名].minio\certs目录下,如
3、重启minio服务
在资源管理器中找到minio进程并结束,在minio.exe目录下执行以下命令启动
minio server D:\minio\data --console-address ":9001"
4、访问
在浏览器中输入minio地址,例如 https://192.168.1.10:9000(会自动跳转到https://192.168.1.10:9001)
Ⅱ、linux平台
1、防火墙开启443、9000、9001端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9001/tcp --permanent
2、重启防火墙
firewall-cmd --reload
3、查看防火墙已经开启的端口
firewall-cmd --zone=public --list-ports
4、安装apache
sudo yum install httpd
5、启用https
sudo systemctl enable httpd.service
6、将步骤二生成的私钥和证书拷贝到minio服务器上的~/.minio/certs目录下
说明:~/.minio/certs目录在用户文件夹下,如 /root/.minio/certs目录
7、重启minio服务
(1)找到minio进程并结束
ps -ef|grep minio
(2)启动minio服务,并指定https访问的端口为9001
./minio server /mnt/data --console-address ":9001"
说明
./minio server [数据存储路径] --console-address ":[https端口]"
8、访问
在浏览器中输入minio地址,例如 https://192.168.1.10:9000(会自动跳转到https://192.168.1.10:9001)
附录
(1)若想恢复http访问,只需要将~/.minio/certs目录下的私钥和证书删掉即可
(2)在步骤二 编写openssl.conf中一定要注意 IP.1和DNS.1的地址必须是需要设置为https访问的服务器ip(minio服务器ip)
(3)minio 后台启动nohup ./minio server /mnt/data --console-address “:9001” > ./minio.log 2>&1 &