Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 01-03-2018 17:59:19

Kryzo
Membre
Distrib. : Archlinux, Debian
Inscription : 24-10-2017

[RÉSOLU] SSL letsencrypt OMV

Bonjour à tous,

Je suis conscient qu'il existe un support d'aide aux utilisateurs d'OpenMediaVault mais celui-ci est anglophone, et après quelques recherches je ne trouve pas la solution.
Au cas où vous ne sauriez pas, OMV est basé sur debian donc je pense ne pas être si hors-jeu que ça et j'espère que vous pourrez me filer un coup de main.

Mon problème est simple: je n'arrive pas à obtenir de certificat letsencrypt.

Ma situation est la suivante:
J'ai un nom de domaine + 1 hébergement chez un prestataire bien connu et j'ai une machine (en auto-hébergement) avec OMV 3.x (nginx, php5.6) sur lequel j'ai installé nextcloud 13, entre autres.
J'ai réglé le natage "IP publique" vers "IP local du serveur". J'ai créé, chez le prestataire, un sous-domaine de mon nom de domaine du genre nextcloud.mon-nom-de-domaine.fr, et j'ai fait pointer ce sous-domaine vers 'l'IP Publique de mon FAI".

Si ce n'est pas encore assez clair:

dig nextcloud.mon-nom-domaine.fr

; <<>> DiG 9.12.0 <<>> nextcloud.mon-nom-domaine.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2915
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nextcloud.mon-nom-domaine.fr.    IN  A

;; ANSWER SECTION:
nextcloud.mon-nom-domaine.fr. 3600  IN  A xxx.xxx.xxx.xxx "IP_PUBLIQUE_FAI"

;; Query time: 21 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: ven. mars 02 11:27:47 CET 2018
;; MSG SIZE  rcvd: 65



dig mon-nom-domaine.fr

; <<>> DiG 9.12.0 <<>> mon-nom-domaine.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26983
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mon-nom-domaine.fr.      IN  A

;; ANSWER SECTION:
mon-nom-domaine.fr.   3600  IN  A xxx.xxx.xxx.xxx "IP_Publique_ prestataire"

;; Query time: 25 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: ven. mars 02 11:28:14 CET 2018
;; MSG SIZE  rcvd: 55
 




J'ai donc actuellement accès à nextcloud via l'url souhaitée mais avec un certificat auto-signé.

Pour obtenir un certificat letsencrypt, j'ai installé l'addon let's encrypt, qui permet de s'enregistrer et de générer un certificat.
Il se présente en 2 parties:

- Une partie "Domaines" où l'on renseigne le/les nom/s de domaine ainsi que le racine web.
J'ai donc mis ceci :
mon-nom-de-domaine.fr,nextcloud.mon-nom-de-domaine.fr
et pour la racine web:
/var/www/openmediavault/

(je précise que pour installer nextcloud j'ai suivi ce tuto: https://forum.openmediavault.org/index. … tallation/ et que, par conséquent, j'ai extrais l'archive dans /srv/dev-disk-by-label-Toshiba/www/)

- Une partie "Paramètres" qui permet d'actualiser le certificat mensuellement via cron, de renseigner l'adresse de messagerie pour l'inscription, de renseigner un nom de certificat, une longueur de clé RSA en 2048 ou 4096, et autres options supplémentaires.

J'ai tout renseigné et n'ai pas activé l'actualisation, comme dit ci-dessous.
Et j'obtiens l'erreur:

Command: export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LANG=C; /usr/bin/certbot certonly --non-interactive --rsa-key-size 4096 --text --keep-until-expiring --agree-tos --allow-subset-of-names --cert-name nextcloud --email kryzo.at.dot.com --webroot -w /var/www/openmediavault/ -d nextcloud.nom-de-domaine.fr 2>&1

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.nom-de-domaine.fr
Using the webroot path /var/www/openmediavault for all unmatched domains.
Waiting for verification...
Challenge failed for domain nextcloud.nom-de-domaine.fr
Cleaning up challenges
Challenges failed for all domains
Terminé...




Plus bas on y trouve aussi ceci:
   

Plugin uses the webroot installation method provided by Let's Encrypt.
    OMV configuration needs to be applied after generating certificate due to the plugin adding entries to certificates.
    If you generate your first certificate with the test flag enabled your certificate will have an invalid root cert from Happy Hacker. You will need to delete your /etc/letsencrypt folder and start over.
    Port 80 must be open for Let's Encrypt to verify your domain.


J'ai pas compris "Happy Hacker" mais le plus confus, c'est le port 80. De quel équipement parle-t-il ? ma box ? ma machine OMV ? du côté du prestataire ?

J'ai ouvert le port 80 de la box à destination du serveur et nginx est en écoute sur ce port.
Je peux fournir les fichiers de config nginx, logs, etc. si nécessaire.

Une idée ?
Merci.

Dernière modification par Kryzo (02-03-2018 15:34:41)

Hors ligne

#2 02-03-2018 10:43:16

hyrr0
Membre
Distrib. : Debain stable
Noyau : 4.9
(G)UI : KDE 5.8 LTS
Inscription : 12-01-2018

Re : [RÉSOLU] SSL letsencrypt OMV

Salut,

Le message est plutôt explicite. Let's Encrypt vérifie le nom de domaine. C'est une question de sécurité pour pas générer un certificat qui n'est pas le tiens et faire de l'usurpation de domaine. Bref, tu as juste à ouvrir le port 80 de la machine sur laquelle est lancé Let's Encrypt (donc chez ton prestataire). Une simple règle de firewall smile

Hors ligne

#3 02-03-2018 13:23:41

Kryzo
Membre
Distrib. : Archlinux, Debian
Inscription : 24-10-2017

Re : [RÉSOLU] SSL letsencrypt OMV

Bonjour hyrr0,

Justement, la machine sur laquelle je lance let's encrypt n'est pas chez le prestataire mais chez moi, en auto-hébergement.

Sur le serveur OMV/Nextcloud, en local:

nmap -sS 192.168.1.xx

Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-02 11:59 CET
Nmap scan report for Zalmanas (192.168.1.xx)
Host is up (0.015s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
81/tcp   open  hosts2-ns
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
443/tcp  open  https
444/tcp  open  snpp
445/tcp  open  microsoft-ds
2049/tcp open  nfs
MAC Address: 4C:CC:6A:63:6A:84 (Micro-star Intl)

Nmap done: 1 IP address (1 host up) scanned in 11.36 seconds



Idem, en spécifiant l'IP Publique de mon FAI

nmap -sS xxx.xxx.xxx.xxx

Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-02 12:17 CET
Nmap scan report for static-xxx-xxx-xxx-xxx.ftth.abo.bbox.fr (xxx.xxx.xxx.xxx)
Host is up (0.0078s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
53/tcp  open  domain
80/tcp  open  http
443/tcp open  https
444/tcp open  snpp

Nmap done: 1 IP address (1 host up) scanned in 109.49 seconds




Le site web de mon-nom-de-domaine.fr est hébergé chez le prestataire et possède un certificat authentique. M'est-il possible de réutiliser ce certificat ?
Les informations pour let's encrypt sont-elles exactes ?
nom de domaine: mon-nom-de-domaine.fr ? nextcloud.mon-nom-de-domaine.fr ?
racine web: /var/www/openmediavault ? /srv/dev-by-label-Toshiba/www/nextcloud ?


Je modifie une partie de mon message initial, en espérant que ce soit plus clair concernant le pointage du nom de domaine.



Incident clos:
j'ai installé certbot pour ngnix

aptitude install python-certbot-nginx


ce qui a eu pour effet de m'installer le paquet et ses dépendances.

J'ai lancé:

certbot certonly --authenticator standalone
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel):nextcloud.mon-nom-de-domaine.fr
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.mon-nom-de-domaine.fr

-------------------------------------------------------------------------------
Port 80 is already in use by another process. This will prevent us from binding
to that port. Please stop the process that is populating the port in question
and try again.
-------------------------------------------------------------------------------
Press Enter to Continue
Cleaning up challenges
At least one of the required ports is already taken.


J'en ai conclu que le port 80 était utilisé par nginx (en écoute sur port 80 et 443). Je pensais à tord qu'il fallait que ce soit le cas.
J'ai modifié le port 80 en 84 temporairement.

J'ai relancé et ça a fonctionné pour nextcloud.mon-nom-de-domaine.fr

Dans l'interface OMV, j'ai mis:
nextcloud.mon-nom-de-domaine.fr
et racine web: /srv/dev-disk-by-label-Toshiba/www/nextcloud/
j'ai généré, activer les options nécessaires et c'est tout bon.

Merci à toi hyrr0.

Dernière modification par Kryzo (02-03-2018 15:33:49)

Hors ligne

Pied de page des forums