Seafile and NginX - No Webinterface with SSL

Hello Guys,

first i hope you can understand me. I’m from germany and my english isn’t very well. I try to use seafile with the NginX Webserver. The installation of Seafile was very simple, no problem.

Everything works fine with http://mydomain.de:8000. With https://mydomain.de:8000, the webinterface does not want to load. I see only a Time Out error. That’s it.

Okay what did i change?

First, i completed my NginX Configuration. It looks like now:
https://pastebin.com/6C9ZfrDn

# HTTP Konfiguration
server {
    listen 80;
    server_name kohta-pi.de www.kohta-pi.de;
    return 301 https://$host$request_uri; #Weiterleitung für HTTP zu HTTPS
}
 
# HTTPS Konfiguration
server {
    listen 443 ssl;
    server_name kohta-pi.de www.kohta-pi.de;
    root /var/www/html/kohtapi;
    index index.php index.html index.htm;
   
    server_name seafile.example.com;
    proxy_set_header X-Forwarded-For $remote_addr;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    server_tokens off;
 
# PHP Konfiguration
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    include snippets/fastcgi-php.conf;
       
    }
 
# SSL Konfiguration
    ssl_certificate /etc/letsencrypt/live/www.kohta-pi.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.kohta-pi.de/privkey.pem;
    ssl_session_cache shared:le_nginx_SSL:1m;
    ssl_session_timeout 1440m;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
 
#Seafile
location / {
    try_files $uri $uri/ /index.php?$args;
    fastcgi_pass    127.0.0.1:8000;
    fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO           $fastcgi_script_name;
 
    fastcgi_param   SERVER_PROTOCOL        $server_protocol;
    fastcgi_param   QUERY_STRING        $query_string;
    fastcgi_param   REQUEST_METHOD      $request_method;
    fastcgi_param   CONTENT_TYPE        $content_type;
    fastcgi_param   CONTENT_LENGTH      $content_length;
    fastcgi_param   SERVER_ADDR         $server_addr;
    fastcgi_param   SERVER_PORT         $server_port;
    fastcgi_param   SERVER_NAME         $server_name;
    fastcgi_param   REMOTE_ADDR         $remote_addr;
    fastcgi_param   HTTPS               on;
    fastcgi_param   HTTP_SCHEME         https;
 
    access_log      /var/log/nginx/seahub.access.log;
    error_log       /var/log/nginx/seahub.error.log;
    fastcgi_read_timeout 36000;
    client_max_body_size 0;
    }
       
location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
    send_timeout  36000s;
    }
       
location /media {
    root /home/user/haiwen/seafile-server-latest/seahub;
    }
}

The changes in /home/kohtachan/conf/ccnet.conf

[General]
USER_NAME = kohtapi
ID = id
NAME = kohtapi
SERVICE_URL = https:// kohta-pi. de (Sorry for the Spaces but i can put only 2 links in this post)

[Client]
PORT = 13419

And the changes in /home/kohtachan/conf/seahub_settings.py

# -*- coding: utf-8 -*-
SECRET_KEY = "redacated"
FILE_SERVER_ROOT = 'https://kohta-pi.de/seafhttp'

I started the server with the follow command:

./seafile.sh start
./seahub.sh start-fastcgi

Maybe it is important to know that i nothing changed during the installation. I used the default settings. Port 8000, 8082, 443 and 80 are open in the router.

I hope anyone can help me and sorry for this broken english. I tried my best during writing.

Greetz from Germany
Leon

The webinterface with ssl is hosted on port 443. Only port 443 (and 80 if you want to redirect to ssl with nginx) need to be opened in the router. Furthermore the php block in your nginx config looks somewhat conflicting.

FYI: The SECRET_KEY needs to be kept private. Please enter a new one in your local configuration as the one could be compromised already.

Edit: Wie es aussieht betreibst du unter der gleichen Adresse wie Seafile deine Website.

Ich empfehle Seafile auf eine Subdomain zu verlegen. Dies ist mit geringem Aufwand möglich.

Passt da auch nicht hin.

Hey, schön, dass du auch deutsch sprichst. Das macht es mir etwas einfacher.

Das mit dem Key wusste ich ich nicht und habe mir jetzt einen neuen erstellt.
Das mit der Subdomain setze ich gerne um.

Der Eintrag mit try_files $uri $uri/ /index.php?$args; ist nicht anders machbar. Sobald diese Zeile raus ist lädt Wordpress die Artikel nicht mehr.

PHP ist bei mir mit NginX ne ganz böse Sache. Ich habe versucht es mittels https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/ und php-fpm einzufügen.

Dann bleibt die Seite aber einfach nur noch weiß. Mehr passiert nicht mehr. Ich werde mal das mit der Subdomain umsetzen. Macht jetzt im Nachhinein irgendwie Sinn :sweat:

[Edit]Muss die Subdomain irgendwo speziell hinführen oder nur auf die IP Adresse des Servers?[/edit]

Du kannst die Subdomain einfach als CNAME auf deine Hauptdomain machen. In nginx lässt du dann deine Wordpress Konfiguration wie sie ist und fügst einen neuen Server Block für die neue Domain (Subdomain) mit deiner Seafile Konfiguration hinzu.

So mit der Subdomain und dem neuen Serverblock hat es jetzt geklappt! Vielen Dank für die Hilfe.