picgo-plugin-minio icon indicating copy to clipboard operation
picgo-plugin-minio copied to clipboard

自建minio开启https上传文件提示:UNABLE_TO_VERIFY_LEAF_SIGNATURE

Open Konghe-cn opened this issue 11 months ago • 18 comments

只要关闭就正常,开启ssl就出现这个问题,obsidian同样的设置但是没有问题,完整日志如下: 2024-03-06 22:15:48 [PicGo SUCCESS]

2024-03-06 22:18:02 [PicGo INFO] [PicGo Server] shutdown 2024-03-06 23:05:47 [PicGo INFO] [PicGo Server] is listening at 36677 2024-03-06 23:05:47 [PicGo INFO] register builtin shortKey command: [picgo:upload] - [CommandOrControl+Shift+P] 2024-03-06 23:05:47 [PicGo INFO] register builtin shortKey command: [picgo:upload] - [CommandOrControl+Shift+P] successfully 2024-03-06 23:08:50 [PicGo INFO] Before transform 2024-03-06 23:08:50 [PicGo INFO] Transforming... Current transformer is [path] 2024-03-06 23:08:50 [PicGo INFO] Before upload 2024-03-06 23:08:50 [PicGo INFO] beforeUploadPlugins: renameFn running 2024-03-06 23:08:50 [PicGo INFO] Uploading... Current uploader is [minio] 2024-03-06 23:08:50 [PicGo WARN] { "code": "UNABLE_TO_VERIFY_LEAF_SIGNATURE" } 2024-03-06 23:08:50 [PicGo SUCCESS]

Konghe-cn avatar Mar 06 '24 15:03 Konghe-cn

@Konghe-cn 请问你的这个问题解决了么,我也遇到这个问题。MINIO 目前是HTTPS访问,但是通过PicGo上传就提示“UNABLE_TO_VERIFY_LEAF_SIGNATURE”

jerrycheny avatar Apr 14 '24 13:04 jerrycheny

@Herbertzz 辛苦,可以看一下这个问题么? 感谢~折腾好几天了没有解决。

jerrycheny avatar Apr 15 '24 06:04 jerrycheny

@Herbertzz 辛苦,可以看一下这个问题么? 感谢~折腾好几天了没有解决。

这个我之前更换了多个证书都没有起到作用,后来换了个思路,不在minio里配置https,上传的时候也不使用https,然后因为我使用的内网穿透,我是在内网穿透应用上配置的https,上传和访问minio文件用的并不是同一个域名,在picgo加速域名那里再添加上https域名,后面正常使用。

Konghe-cn avatar Apr 15 '24 07:04 Konghe-cn

@Herbertzz 辛苦,可以看一下这个问题么? 感谢~折腾好几天了没有解决。

这个我之前更换了多个证书都没有起到作用,后来换了个思路,不在minio里配置https,上传的时候也不使用https,然后因为我使用的内网穿透,我是在内网穿透应用上配置的https,上传和访问minio文件用的并不是同一个域名,在picgo加速域名那里再添加上https域名,后面正常使用。

Konghe-cn avatar Apr 15 '24 07:04 Konghe-cn

我本地开发环境用的是 traefik,由traefik统一管理https,没复现成功过这个问题,请求路径: 客户端 ------https------> traefik --------http-----> minio。

Herbertzz avatar Apr 15 '24 07:04 Herbertzz

出现这个问题的环境是怎么搭的,我看看能不能复现

Herbertzz avatar Apr 15 '24 07:04 Herbertzz

感谢回复,环境如下 1、MINIO通过Docker部署,YAML如下; 2、Picgo版本2.3.1; 3、Picgo MINIO插件版本2.3.5

docker compose yaml

services:
  minio:
    image: minio/minio:latest
    command: server --console-address ":9001" /data
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      - MINIO_ROOT_USER=${ADMIN_USERNAME}
      - MINIO_ROOT_PASSWORD=${ADMIN_PASSWORD}
      - MINIO_SERVER_URL=https://minio.xxxxxx.com:9000
    hostname: minio.xxxxxx.com
    volumes:
      - /root/data/minio/:/data
      - ${PATH_CERT_FILE}:/root/.minio/certs/public.crt:ro
      - ${PATH_CERT_PRIVATE_KEY}:/root/.minio/certs/private.key:ro
    healthcheck:
      test: ["CMD", "curl", "-f", "https://my.domain:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
    restart: always

.env

MinIO Credentials

ADMIN_USERNAME=admin ADMIN_PASSWORD=xxxxxx

SSL/TLS Certificates

PATH_CERT_FILE=/root/data/minio/certs/public.crt PATH_CERT_PRIVATE_KEY=/root/data/minio/certs/private.key

环境没有通过nginx代理,直接做了互联网发布。目前MINIO对外分享可以HTTPS访问。

Picgo 日志

2024-04-15 12:24:50 [PicGo SUCCESS]

2024-04-15 12:25:17 [PicGo INFO] [PicGo Server] get the request {"list":["C:\Users\xxxxxx\AppData\Local\Temp\Typora\typora-icon2.png","C:\Users\oakcd\AppData\Local\Temp\Typora\typora-icon.png"]} 2024-04-15 12:25:17 [PicGo INFO] [PicGo Server] upload files in list 2024-04-15 12:25:17 [PicGo INFO] Before transform 2024-04-15 12:25:17 [PicGo INFO] Transforming... Current transformer is [path] 2024-04-15 12:25:17 [PicGo INFO] Before upload 2024-04-15 12:25:17 [PicGo INFO] beforeUploadPlugins: renameFn running 2024-04-15 12:25:17 [PicGo INFO] Uploading... Current uploader is [minio] 2024-04-15 12:25:17 [PicGo WARN] { "code": "UNABLE_TO_VERIFY_LEAF_SIGNATURE" } 2024-04-15 12:25:17 [PicGo SUCCESS]

2024-04-15 12:25:17 [PicGo INFO] [PicGo Server] upload result
2024-04-15 12:25:17 [PicGo WARN] [PicGo Server] upload failed, see picgo.log for more detail ↑

jerrycheny avatar Apr 15 '24 07:04 jerrycheny

@Herbertzz 辛苦,可以看一下这个问题么? 感谢~折腾好几天了没有解决。

这个我之前更换了多个证书都没有起到作用,后来换了个思路,不在minio里配置https,上传的时候也不使用https,然后因为我使用的内网穿透,我是在内网穿透应用上配置的https,上传和访问minio文件用的并不是同一个域名,在picgo加速域名那里再添加上https域名,后面正常使用。

是比较绕,我的场景是obsidian+picgo+minio。我现在测试下来发现obsidian在手机同步的时候,HTTP的图片无法访问,只能是HTTPS的。就比较挠头。

jerrycheny avatar Apr 15 '24 07:04 jerrycheny

我本地开发环境用的是 traefik,由traefik统一管理https,没复现成功过这个问题,请求路径: 客户端 ------https------> traefik --------http-----> minio。

你这个思路也可以,不用MINIO设置HTTPS。我在traefik或者nginx上做HTTPS,是不是也可以。我去试试。但…… 哈哈,要是能直接HTTPS就搞了就嗨皮了

jerrycheny avatar Apr 15 '24 07:04 jerrycheny

同样的问题,obsidian必须minio开启https,picgo的minio插件开https就 UNABLE_TO_VERIFY_LEAF_SIGNATURE;咋办?开2个container?

PangciPG avatar Apr 16 '24 06:04 PangciPG

同样的问题,obsidian必须minio开启https,picgo的minio插件开https就 UNABLE_TO_VERIFY_LEAF_SIGNATURE;咋办?开2个container?

貌似目前是这样的,我尝试minio http → nginx https。picgo→ nginx https 还没有解决。

jerrycheny avatar Apr 16 '24 06:04 jerrycheny

Picgo: 2.3.1 picgo-plugin-minio: 2.3.6 证书: Let's Encrypt RSA 签发 minio 使用以下docker命令搭建

docker run -d
  --name='Minio-test'
  -e TZ="Asia/Shanghai"
  -e HOST_CONTAINERNAME="Minio-test"
  -e 'TCP_PORT_9000'='9000'
  -e 'TCP_PORT_9001'='9001'
  -e 'MINIO_ROOT_USER'='admin'
  -e 'MINIO_ROOT_PASSWORD'='123456'
  -e 'MINIO_SERVER_URL'='https://minio-test.xxx.com:9000'
  -v '/mnt/user/appdata/minio-test/data':'/data':'rw'
  -v '/mnt/user/appdata/minio-test/config':'/root/.minio':'rw'
  -v '/mnt/user/appdata/minio-test/cert/private.key':'/root/.minio/certs/private.key':'ro'
  -v '/mnt/user/appdata/minio-test/cert/public.crt':'/root/.minio/certs/public.crt':'ro' 
  'minio/minio' server /data --console-address ":9001"

可以正常上传, 没有出现证书错误提示

Herbertzz avatar Apr 17 '24 13:04 Herbertzz

建议把插件更新到2.3.6试试, 2.3.6版本更新了 minio sdk 版本

Herbertzz avatar Apr 17 '24 13:04 Herbertzz

@Herbertzz 插件更新了也是一样的报错。我把我目前部署的步骤截图了,涛声依旧……,你traefik可以正常使用的话,可以分享一下如何做的么,感谢

Docker-compose yaml

services:
  minio:
    image: minio/minio:latest
    command: server --console-address ":9001" /data
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      - MINIO_ROOT_USER=admin
      - MINIO_ROOT_PASSWORD=admin123
      - MINIO_SERVER_URL=https://minio.************.com:9000
    hostname: minio.******.com
    volumes:
      - /root/data/minio/:/data
      - /root/data/minio/certs/public.crt:/root/.minio/certs/public.crt:ro
      - /root/data/minio/certs/private.key:/root/.minio/certs/private.key:ro
    healthcheck:
      test: ["CMD", "curl", "-f", "https://minio.******.com:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3
    restart: always

部署完成后信息查看

Pasted image 20240418121507

控制台页面访问,此处可以看到已经是HTTPS访问

Pasted image 20240418114810

创建存储桶并将存储桶权限设置为public

Pasted image 20240418114907

Pasted image 20240418114925

上传文件测试

Pasted image 20240418115052

查看文件共享链接是否为HPPTS域名

Pasted image 20240418115240

测试链接访问

Pasted image 20240418115348

PicGo 更新 MINIO 插件版本为 2.3.6

Pasted image 20240418115430

配置 MINIO 2.3.6插件并保存配置

Pasted image 20240418115632

Pasted image 20240418115734

进行图片上传测试 - 上传失败

Pasted image 20240418115832

Pasted image 20240418115859

Pasted image 20240418115914

查看日志

Pasted image 20240418120015

Pasted image 20240418120106

2024-04-18 12:00:26 [PicGo INFO] Before transform 
2024-04-18 12:00:26 [PicGo INFO] Transforming... Current transformer is [path] 
2024-04-18 12:00:26 [PicGo INFO] Before upload 
2024-04-18 12:00:26 [PicGo INFO] beforeUploadPlugins: renameFn running 
2024-04-18 12:00:26 [PicGo INFO] Uploading... Current uploader is [minio] 
2024-04-18 12:00:26 [PicGo WARN] {
  "code": "UNABLE_TO_VERIFY_LEAF_SIGNATURE"
} 
2024-04-18 12:00:26 [PicGo SUCCESS] 
 

查看服务器信息

  • 防火墙关闭
  • SELINUX:disabled
  • Linux:Rocky Linux 9.3
  • 端口开放:9001、9000

Pasted image 20240418120509

jerrycheny avatar Apr 18 '24 04:04 jerrycheny

如果可以的话, 把证书发送到 [email protected] 这个邮箱, 我测试是否是证书的问题.

traefik 相关配置, 我有时间整理下再发上来

Herbertzz avatar Apr 21 '24 04:04 Herbertzz

如果可以的话, 把证书发送到 [email protected] 这个邮箱, 我测试是否是证书的问题.

traefik 相关配置, 我有时间整理下再发上来

证书已发送。

jerrycheny avatar Apr 21 '24 11:04 jerrycheny

使用你的证书(fullchain.cer 和 xxxxx.key)测试过了, 也没报错, 可以成功上传.

进 picgo 的安装目录, 然后打开 node_modules/picgo-plugin-minio/node_modules/minio/package.json 看下 version 是 7.1.3 或以上. 如果不是 删除 picgo-plugin-minio 目录, 重新安装插件试试

Herbertzz avatar Apr 25 '24 11:04 Herbertzz

使用你的证书(fullchain.cer 和 xxxxx.key)测试过了, 也没报错, 可以成功上传.

进 picgo 的安装目录, 然后打开 node_modules/picgo-plugin-minio/node_modules/minio/package.json 看下 version 是 7.1.3 或以上. 如果不是 删除 picgo-plugin-minio 目录, 重新安装插件试试

  1. minio插件从github上下载导入。
  2. 如果是插件里面的package.json version 写的是2.3.6 image

jerrycheny avatar Apr 26 '24 08:04 jerrycheny