开启s3的https客户端无法使用的问题
开启s3的https客户端无法使用的问题
zphj1987问题描述
在内网部署的https的时候,我们采用的是自签名的ssl证书,内网的这个证书是无法被客户端认证通过的,这个地方主要体现在下面几个现象可以看到
chrome下的表现
s3cmd下面的表现
s3browser下的表现
这些共同的表现就是无法建立信任的关系
这里我们实际要解决的问题就是,内网是可以绕过这个证书的检测的
不同客户端的处理
s3cmd的处理
1 | [root@lab103 ~]# s3cmd ls --no-check-certificate s3://mybucket/ |
s3browser的处理
可以看到官方在11.5.7版本开始考虑到这个问题了,可以忽略证书的认证,我们只是用到https传输即可
把这个选项勾选,也就是信任所有的证书,重启客户端
可以看到启用https,并且使用了最新的客户端,也是可以正常运行了,也就是证书的问题
通过自颁发证书来解决证书验证问题
自颁发证书
1 | yum install openssl openssl-devel -y |
step1: 生成证书请求文件
新建openssl.cnf,内容如下:
1 | [req] |
step2: 生成私钥
san_domain_com 为最终生成的文件名,一般以服务器命名,可改。
1 | openssl genrsa -out san_domain_com.key 2048 |
step3: 创建CSR文件
创建CSR文件命令:
1 | openssl req -new -out san_domain_com.csr -key san_domain_com.key -config openssl.cnf |
执行后,系统会提示输入组织等信息,按提示输入如即可。
测试CSR文件是否生成成功,可以使用下面的命令:
1 | openssl req -text -noout -in san_domain_com.csr |
step4: 自签名并创建证书
1 | openssl x509 -req -days 3650 -in san_domain_com.csr -signkey san_domain_com.key -out san_domain_com.crt -extensions v3_req -extfile openssl.cnf |
执行后,可看到本目录下多了以下三个文件
1 | san_domain_com.crt |
如果是给nginx用就是一个key 一个crt的
我们准备给ceph的证书(用上面生成的)
1 | cp san_domain_com.crt ceph.crt |
ceph的配置
1 | [client.radosgw1] |
客户端导入证书san_domain_com.crt
注意,导入的时候要添加到选择受信任的颁发机构里面
安装以后,这个就是再访问https就是正常的了
改成https的之后进行访问,这样可以不用关闭证书验证了,证书是可以认证的了
评论
匿名评论隐私政策