seafile12.0.11启用https

seafile12.0.11怎么启用https

只知道11,有域名就申请SSL,没有就用自签名的SSL,要配置几处地方的,可以看下11的安装介绍

最简单的方式:
1、先配置确保 http 能正常访问
2、申请证书(官网采用 caddy 作为前端接入)可以取消这个直接用 seafile 内置的 Nginx,将证书配置到 seafile.nginx.conf 中
3、调整配置文件的 http 为 https
4、重新启动整体服务
你可以参考 docker-seafile-12.06 - 虚拟的现实 - 虚拟的现实

想配个内网https证书,原以为.env配置好了就行了,不过一直没证书,踩了一路的坑,对于小白来说复杂度还是太高。研究了哈大概的原因是升级到12的Docker反向代理镜像从Nginx换到了Caddy,Caddy又会自动去申请Let’s Encrypt的免费证书,申请免费证书默认用的http challenge接口,但是业务在内网这样肯定是申请不到的。想搞dns challenge,要怎么手工去修改caddy的dns申请接口和用哪个DNS TXT的值,就搞不动了,又害怕手工换成Nginx用自签名证书把服务调崩。求官方补充下这方面的文档

1 个赞

你可以用其他程序申请ssl证书,然后挂载到caddy
以下代码仅供参考
caddy.yml中添加下列内容(注意在正确的位置添加)

  caddy:
    labels:
      caddy.auto_https: "disable_certs"
volumes:
      - 硬盘证书路径:/etc/caddy/certs/pan.example.com.crt:ro
      - 硬盘密钥路径:/etc/caddy/certs/pan.example.com.key:ro

作用:关闭caddy自动申请证书功能,让caddy挂载已有证书

/data/seafile-server.yml中添加以下内容(注意在正确的位置添加)

  seafile:
    labels:
      caddy.tls: /etc/caddy/certs/pan.example.com.crt /etc/caddy/certs/pan.example.com.key

作用:让caddy自动使用已有证书文件

2 个赞

为什么我添加caddy.auto_https: “disable_certs” 这个,会报错,你用的哪个版本

lucaslorentz/caddy-docker-proxy:2.9-alpine

注意一下对齐及空格
微信图片_20250408131848

配置完成后启动正常,无法访问,请问是哪里没配置对吗?

端口应该是443,为啥用的是6666

443映射到公网是6666

要么内部配置端口号为6666,要么外部公网端口改为443

好,谢谢!这个问题解决了。

能请教一个新问题吗?

我配置的是seafile12.0 与 onlyoffice 现在实现了在线编辑,但是在线编辑回调写入seafile报错了,日志如下,怎么解决呢?

[2025-08-08T17:48:52.812] [WARN] [localhost] [c5aacec54d94fdf2709b] [zhoudunwen@qq.com6] nodeJS - handleDeadLetter start: {“ctx”:{“tenant”:“localhost”,“docId”:“c5aacec54d94fdf2709b”,“userId”:“zhoudunwen@qq.com6”,“shardKey”:“c5aacec54d94fdf2709b”},“cmd”:{“wopiParams":null,“c”:“sfc”,“id”:“c5aacec54d94fdf2709b”,“userid”:"zhoudunwen@qq.com”,“userindex”:3,“data”:null,“title”:“output.docx”,“outputformat”:65,“outputpath”:“output.docx”,“status_info”:0,“savekey”:“_444”,“jsonparams”:{“documentLayout”:{“openedAt”:1754703028325,“headingsColor”:null}},“lcid":2052,“useractionid”:"zhoudunwen@qq.com”,“useractionindex”:6,“nobase64”:true,“status_info_in”:2923971,“attempt”:2,“originformat”:65}}
[2025-08-08T17:48:52.812] [WARN] [localhost] [c5aacec54d94fdf2709b] [zhoudunwen@qq.com6] nodeJS - handleDeadLetter addResponse delayed = 2
[2025-08-08T17:48:52.814] [WARN] [localhost] [c5aacec54d94fdf2709b] [zhoudunwen@qq.com6] nodeJS - handleDeadLetter end: requeue = false
[2025-08-08T17:50:37.135] [ERROR] [localhost] [c5aacec54d94fdf2709b] [userId] nodeJS - sendServerRequest error: url = https://exz.334455.xyz:3333/onlyoffice/editor-callback/;data = {“key”:“c5aacec54d94fdf2709b”,“status”:6,“url”:“https://exz.334455.xyz:3332/cache/files/data/c5aacec54d94fdf2709b_6573/output.docx/output.docx?md5=U0r7Lm-SeUACQkhb_HFTIA&expires=1754676338&shardkey=c5aacec54d94fdf2709b&filename=output.docx",“history”:{},“users”:[“zhoudunwen@qq.com”],“lastsave”:“2025-08-08T17:50:15.000Z”,“forcesavetype”:2,“token”:“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJjNWFhY2VjNTRkOTRmZGYyNzA5YiIsInN0YXR1cyI6NiwidXJsIjoiaHR0cHM6Ly9zZWEuNjY3NjY5Lnh5ejozMzMyL2NhY2hlL2ZpbGVzL2RhdGEvYzVhYWNlYzU0ZDk0ZmRmMjcwOWJfNjU3My9vdXRwdXQuZG9jeC9vdXRwdXQuZG9jeD9tZDU9VTByN0xtLVNlVUFDUWtoYl9IRlRJQSZleHBpcmVzPTE3NTQ2NzYzMzgmc2hhcmRrZXk9YzVhYWNlYzU0ZDk0ZmRmMjcwOWImZmlsZW5hbWU9b3V0cHV0LmRvY3giLCJoaXN0b3J5Ijp7fSwidXNlcnMiOlsiemhvdWR1bndlbkBxcS5jb20iXSwibGFzdHNhdmUiOiIyMDI1LTA4LTA4VDE3OjUwOjE1LjAwMFoiLCJmb3JjZXNhdmV0eXBlIjoyLCJmaWxldHlwZSI6ImRvY3giLCJpYXQiOjE3NTQ2NzU0MzcsImV4cCI6MTc1NDY3NTczN30.hKUYnxrrKEwnAX08CO48oyCXz6QsHuH0bSdWNmeJM18”,“filetype”:"docx”} AxiosError: Request failed with status code 500
at settle (/snapshot/server/Common/node_modules/axios/dist/node/axios.cjs)
at IncomingMessage.handleStreamEnd (/snapshot/server/Common/node_modules/axios/dist/node/axios.cjs)
at IncomingMessage.emit (node:events:536:35)
at endReadableNT (node:internal/streams/readable:1698:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
at Axios.request (/snapshot/server/Common/node_modules/axios/dist/node/axios.cjs)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.postRequestPromise (/snapshot/server/Common/sources/utils.js)
at async Object.sendServerRequest (/snapshot/server/DocService/sources/DocsCoServer.js)