Utilisation et essais de la version compilée de transfersh
Pour avoir toutes les options disponibles, il suffit de faire un ./transfersh --help
en étant dans le dossier de l’application
Comme vous l’avez remarqué il y a beaucoup de possibilités, concentrons-nous sur les plus élémentaires –purge-days value Nombre de jours de rétention des fichiers –purge-interval value Nombre d’heures de rétention des fichiers –max-upload-size value Taille maximum des fichiers envoyés (en kilooctet) –log value Chemin du fichier log –http-auth-user value Nom d’utilisateur pour la demande d’authentification –http-auth-pass value Mot de passe pour la demande d’authentification –ip-whitelist value Liste des ip autorisés a se connecter séparer avec des virgule (,) –ip-blacklist value Liste des ip non autorisés à se connecter séparer avec des virgule (,)
Attention ci-dessous, vous devez choisir soit l’utilisation de certificats autosignés pour un accès local en général, soit la mise en place de certificats fournis par lets encrypt dans le cas d’un accès depuis l’extérieur (serveur dédié).
Pour lancer le serveur en HTTPS, il faudra générer un certificat autosigné avec les commandes suivantes
mkdir /etc/ssl/transfersh/
openssl genrsa -out /etc/ssl/transfersh/transfersh.key 2048
openssl req -new -key /etc/ssl/transfersh/transfersh.key -out /etc/ssl/transfersh/transfersh.csr
openssl x509 -req -days 365 -in /etc/ssl/transfersh/transfersh.csr -signkey /etc/ssl/transfersh/transfersh.key -out /etc/ssl/transfersh/transfersh.crt
- Concernant openssl req -new -key /etc/ssl/transfersh/transfersh.key -out /etc/ssl/transfersh/transfersh.csr si l’accès au site se fait via l’IP, laissez toutes les questions par défaut sinon remplissez les valeurs, la plus importante Common Name (e.g. server FQDN or YOUR name), remplissez la avec votre nom de domaine
- chmod 400 permet de restreindre les droits au minimum sur la clé privée**
- -days 365 indique que l’on génère un certificat valide pour 1 an, vous pouvez augmenter ou réduire la durée, cela vous obligera à générer de nouveau un certificat à la fin de la validité de celui-ci Puis lancer le serveur avec les options SSL
./transfersh --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/ssl/transfersh/transfersh.key --tls-cert-file /etc/ssl/transfersh/transfersh.crt
Ou avec Go
go run main.go --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/ssl/transfersh/transfersh.key --tls-cert-file /etc/ssl/transfersh/transfersh.crt
- –tls-listener-only Force le SSL, pas de possibilité d’être connecté sans chiffrement
- –tls-listener 0.0.0.0:443 on s’ouvre à tous sur le port 443 (port https par défaut)
- –tls-private-key et –tls-cert-file indique les clés du certificat privé et public
Commencez par installer certbot
apt install certbot
Faites votre enregistrement DNS vers le serveur ou vous utiliserez transfersh
Entrez la commande suivante
certbot certonly --standalone --agree-tos -d SOUSDOMAINE.VOTREDOMAINE --register-unsafely-without-email
Voici l’explication de la commande
- certonly ne crée que le certificat
- –standalone lance un serveur temporaire le temps de l’authentification avec les serveurs lets encrypt
- –agree-tos accepte le contrat d’utilisation
- -d SOUSDOMAINE.VOTREDOMAINE vous indiquez le domaine qui va être certifié
- –register-unsafely-without-email On ne veut pas fournir d’email
SOUSDOMAINE.VOTREDOMAINE remplacer cela par votre domaine ou sous domaine
Puis exécuter transfersh
./transfersh --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/privkey.pem --tls-cert-file /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/fullchain.pem
Ou avec Go
go run main.go --provider=local --basedir=/tmp/ --tls-listener-only --tls-listener 0.0.0.0:443 --tls-private-key /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/privkey.pem --tls-cert-file /etc/letsencrypt/live/SOUSDOMAINE.VOTREDOMAINE/fullchain.pem
Vous voilà avec transfertsh en mode HTTPS avec des certificats fournis par lets encrypt
Le renouvèlement des certificats est automatique, il se fait via un cron qui est dans /etc/cron.d/certbot qui s’exécute tout les 12h