docker部署的 seafile-pro 自带证书问题

用 docker 部署了最新版的 saefile-pro。因为是在家里的NAS服务器里部署的,路由器是华硕RT-AC88U,用的是花生壳DDNS,也是花生壳注册的顶级域名。这两天注册了一个免费为期一年的证书,导入到路由器里了。

两个证书文件也放在 /seafile-data/ssl 目录下了,但本人对nginx不熟悉,不知道如何修改配置文件以启用 443端口。 http 下运行一切正常,希望能使用 HTTPS 。

请教各位老司机,这要怎么操作?

docker不太会用,普通的nginx的话是修改配置文件,监听443端口配置证书目录和加密方式,然后跟80端口一样转发到内网指定端口就行

感谢 viatorwu

seafile 的技术员呢?能帮忙解答一下吗?

按照官方文档操作就可以

不行呀,试过了。 nginx 里总需要配置开启 443端口吧?配置文件上没看到有这个呢。。。
而且,你的截图是 seafile 开源版的,不是 pro 版的。这个资料我有看

docker pro 版也有说明怎么开启HTTPS的

是的,按着做了。。。没成功

NGINX配置你可以参考本地部署的seafile文档来写

好的,我再看看怎么弄。。

关键是我是nginx大白。。。

要么nginx里面配置好ssl 监听443 ,要么网站上配置ssl ,nginx做rewrite

docker镜像在容器初始化的时候好像会根据这两个环境参数决定自动部署生成的nginx配置是否启用https 443监听以及将http 80 rewrite到https
SEAFILE_SERVER_LETSENCRYPT(应该是这一项为True的时候自动写入443部分)
SEAFILE_SERVER_HOSTNAME

# 这是pro镜像自动生成的nginx配置
server {
    listen 80;
    server_name _ default_server;

    location /.well-known/acme-challenge/ {
        alias /var/www/challenges/;
        try_files $uri =404;
    }

    location / {
        rewrite ^ https://example.xxx.com$request_uri? permanent;
    }
}

server {
listen 443;
    ssl on;
    ssl_certificate      /shared/ssl/cert.cer; 
    ssl_certificate_key  /shared/ssl/key.key; #这两行可以指定证书和密钥文件路径

    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

    # TODO: More SSL security hardening: ssl_session_tickets & ssl_dhparam
    # ssl_session_tickets on;
    # ssl_session_ticket_key /etc/nginx/sessionticket.key;
    # ssl_session_cache shared:SSL:10m;
    # ssl_session_timeout 10m;
server_name example.xxx.com;

#后面就是一大串根据访问链接通过proxy_pass反代到对应服务

参考一下修改调试。
也可以在seafile容器外再套一层nginx反代,监听443反代到seafile容器的80端口