用Seafile官方的指导方法就可以轻松完成部署工作,本教材主要介绍https的开启方法。
一、部署环境介绍
1.网络环境
家庭网络,没有80/443端口,所以只能用端口映射的方法来解决。外网8088映射到内网80,外网4430映射到内网443
2.虚拟机
双核1G内存
3.https证书申请
使用acme.sh申请证书。
curl https://get.acme.sh | sh -s email=my@example.com
申请证书
./acme.sh --issue -d *.iteait.com --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/xxxxxxxxxxxx #专属ACME地址
把申请到的证书安装到指定文件夹
./acme.sh --install-cert -d *.iteait.com \
--fullchain-file /opt/seafile-data/ssl/*.iteait.com.cer \
--key-file /opt/seafile-data/ssl/*.iteait.com.key
二、修改一些配置文件
1.修改/opt/seafile-data/nginx/conf/seafile.nginx.conf
文件
如果您想要使用自己的 SSL 证书,而且如果用来持久化存储 Seafile 数据的目录为 /opt/seafile-data,您可以做如下处理:
创建 /opt/seafile-data/ssl 目录,然后拷贝您的证书文件和密钥文件到ssl目录下。
按照如下示例修改 Nginx 的配置文件/opt/seafile-data/nginx/conf/seafile.nginx.conf。请不要更改该配置文件的文件名。
server {
listen 80;
server_name example.seafile.com default_server;
location / {
rewrite ^ https://$host$request_uri? permanent;
}
}
server {
listen 443;
ssl on;
ssl_certificate /shared/ssl/your-ssl-crt.crt;
ssl_certificate_key /shared/ssl/your-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;
server_name example.seafile.com;
...
重新加载 Nginx 的配置文件:docker exec -it seafile /usr/sbin/nginx -s reload
或者重启 docker-compose restart
三、一些问题的解决
1.可以正常打开登陆页面,输入密码后出现403 Forbidden
解决方法:
修改 /opt/seafile-data/seafile/conf/seahub_settings.py
在文件末尾增加下面一行就可以了。
CSRF_TRUSTED_ORIGINS = ['seafile.example.com:8088']
2.登陆成功后,无法查看和下载文件
解决办法:
以管理员帐号登陆Seafile,进入系统设置,在设置里修改SERVICE_URL和FILE_SERVER_ROOT到正确的位置。