我目前正在尝试使用 Apache 2.4+ 在我自己的服务器 Ubuntu 14.04 上重新安装 seafile,并让我们使用 CertBot 加密以获得 SSL 证书。
我按照服务器手册重新安装了 seafile:
这导致我这个虚拟主机配置:
<VirtualHost *:80>
ServerName file.lecnet.fr
DocumentRoot /var/www
RewriteEngine on
RewriteRule / https://file.lecnet.fr/
RewriteCond %{SERVER_NAME} =file.lecnet.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName file.lecnet.fr
DocumentRoot /var/www
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/file.lecnet.fr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/file.lecnet.fr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/file.lecnet.fr/fullchain.pem
Alias /media /home/lecomteg/lecfile/seafile-server-latest/seahub/media
<Location /media>
Require all granted
</Location>
RewriteEngine On
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
SetEnvIf Request_URI . proxy-fcgi-pathinfo=unescape
SetEnvIf Authorization "(.*)" HTTP_ATHORIZATION=$1
ProxyPass / fcgi://127.0.0.1:8003/
CustomLog /var/www/vhosts/prod/panel.lecnet.fr/logs/file.log combined
ErrorLog /var/www/vhosts/prod/panel.lecnet.fr/logs/file_error.log
</VirtualHost>
使用此配置,我可以继续运行运行良好的 Web 应用程序,服务器端没有任何错误,并且所有功能似乎都在工作。
但是,如果我尝试使用服务器附带的客户端,当我尝试登录服务器时,我只会在日志客户端出现“不可能的连接”,并显示此错误:
[08/02/17 08:07:38] https://file.lecnet.fr/api2/account/info/的请求失败:{“detail”:“未提供身份验证凭据。”}
我试图通过 curl 使用
curl -d "用户名=用户名&密码=xxxxx" https://file.lecnet.fr/api2/account/info/
这导致我犯了同样的错误。我认为该问题可能与letsencrypt有关,因为上次我在没有https的情况下安装seafile但这次没有使用它。
注意:我也尝试禁用 seafile 检查证书,但它也不起作用。
NB 2:是的,我在端口 8003 上启动 seahub 作为 fast-cgi
我看到有很多关于 django 的主题都有这个错误,但我不知道如何将它应用于我的问题。此外,由于我似乎是唯一一个对 seafile 有此问题的人,我不认为它有问题,而只是我的安装有问题。