0x00 背景

博客里面的图片之前使用的是七牛云的对象存储,用http协议传输的,自chrome更新之后就出现了强制跳转https的问题,而用新版edge还是可以打开的,但是今天我突然发现edge也不好使了,都会强制跳转https。而七牛云里面的https是收费的,既然我有服务器,有域名那就物尽其用搭一个对象存储服务吧。

0x01 过程

由于我的机器之前已经安装了docker,docker的安装过程就不赘述了,咱们直接从minio安装说起。

1. 首先把minio的镜像拉下来

docker pull minio/minio

2. 创建docker-compose.yml文件,写入以下内容

version: '3.1'
services: 
    minio:
      image: minio/minio
      container_name: minio
      restart: always
      ports:
        - 9000:9000
      command: server /data  #指定容器中的目录 /data
      environment:
        MINIO_ACCESS_KEY: minio    #管理后台用户名
        MINIO_SECRET_KEY: minioxxx #管理后台密码,最小8个字符
      volumes:
        - ./data:/data              #映射当前目录下的data目录至容器内/data目录
        - ./config:/root/.minio/     #映射配置目录

3. 配置证书

在腾讯云上面申请了免费的证书,解压后将Apache中的xx.crt和xx.key文件分别改名为public.crt和private.key后放到minio的config/cert文件夹中。

4. 以deamon模式启动minio服务

docker-compose up -d

5. 配置访问策略

网页登录minio,然后新建一个bucket,点击新建的bucket右边三个点,点击Edit policy,prefix填入*,由于该bucket是用作博客的图床的,所以策略选择read only,最后点击Add即可。

0x02 遇到的问题

1. 浏览器提示ERR_CERT_COMMON_NAME_INVALID错误

这个错误是因为当时没有添加域名解析,直接使用了ip加端口访问,与证书里面的域名不匹配而提示的不安全连接问题。