Je dispose maintenant depuis quelques années d’un NAS QNAP TS-412 dont j’avais d’ailleurs présenté les principales caractéristiques à l’époque sur cet article.
Je vous propose de voir ensemble comment paramétrer l’accès web à votre NAS (dans mon cas de marque QNAP) en https et donc d’y associer un véritable certificat SSL signé par une autorité de certification.
Prérequis
Premièrement, vous devez configurer le serveur web de votre NAS (ou tout du moins le portail web d’administration, en fonction de ce que vous voulez faire) pour qu’il accepte les connections sur le port 443 (port utilisé par le protocole https). Si nécessaire, n’oubliez pas non plus d’adapter la configuration de votre routeur ou de votre box Internet s’il y a lieu.
Sur le portail d’administration d’un QNAP, vous devriez trouver cela dans Paramètres Système, Réglage de base puis Administration du système (dans mon cas, je m’intéresse uniquement au portail d’administration et non un serveur web pour afficher des sites personnels ou autres).
A noter que comme indiqué sur la capture d’écran, je souhaite forcer spécifiquement l’utilisation du HTTPS.
Deuxièmement, vous devez bien sûr investir dans un certificat SSL. Pour cela, vous avez plusieurs options, vous pouvez utiliser ce que l’on appelle un certificat auto-signé. L’avantage de cette première solution est que le certificat est gratuit et que vous trouverez plein d’articles vous détaillant comment créer votre propre certificat auto-signé (via openssl, IIS, …).
Mais aujourd’hui, le but pour moi sera d’utiliser un véritable certificat SSL généré par une autorité de certification. Pour cela, je vous recommande d’utiliser NameCheap.com qui propose des certificats SSL de base pour 9 $ / an. C’est à l’heure actuelle, la meilleure offre que j’ai trouvé (mais libre à vous de l’acheter ailleurs OVH, 1&1 vous avez l’embarras du choix).
Attention, une fois que vous avez acheté le certificat SSL ne soyez pas surpris, NameCheap.com ne vous pose aucune question concernant la configuration et l’association de ce certificat à une URL précise. Ces étapes interviennent après le paiement ! 😉
Génération de la clé privée et du CSR
Avant d’aller configurer notre certificat SSL sur NameCheap.com (ou ailleurs) nous allons générer depuis notre NAS la clé privée (private key) et le CSR (certificate request). Le tout peut se faire en une seule et unique ligne de commande que vous retrouverez ci-dessous et que vous pouvez exécuter dans une fenêtre PuTTy après vous êtes connecté en SSH sur le NAS :
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Vous serez alors invité à saisir un certain nombre d’informations (attention à ne pas vous tromper) :
- Country
- State (or province)
- Locality (or city)
- Organization
- Organizational Unit (Department)
- Common Name (the domain name certificate should be issued for)
- E-mail address
- Et éventuellement un Challenge Password et/ou un Company Name (facultatif)
Renseignez de véritables informations et surtout ne faîtes pas d’erreur sur le Common Name qui doit correspondre à l’URL à laquelle vous souhaitez accéder en https. Par exemple, si votre URL d’accès est du format : https://monnas.website.com alors vous devrez renseigner monnas.website.com pour ce champs.
Si vous avez saisi la commande à l’identique, vous aurez alors obtenus les 2 fichiers suivants à l’issue du processus :
- Server.key (private key)
- Server.csr (certificarte request)
Si vous visualiser le contenu d’un des deux fichiers, ça doit ressembler à plein de chiffres et de lettres… c’est bien parti ! 🙂
Configuration du certificat SSL sur NameCheap.com
Une fois le certificat acheté, identifiez-vous sur votre espace personnel NameCheap.com pour visualiser votre certificat SSL et procéder à sa configuration. Cliquez depuis le Menu sur l’option Manage SSL Certificates.
Sur NameCheap.com, choisissez dans le menu déroulant certificat SSL du type : Apache / OpenSSL.
Vous devrez dans un premier temps copier-coller l’ensemble du fichier serv.csr (certificate request) généré précédemment (sur votre NAS) sur NameCheap.com. Vous recevrez alors par email un code pour procéder à l’activation de votre certificat. Cliquez simplement sur le lien fournit et saisissez le code dans le seul champs disponible sur la page qui s’ouvre.
Par la suite, vous serez invité à confirmer des informations vous concernant : votre adresse, ville, code postal, adresse email. Là-encore, pas de psychose SPAM, utilisez des informations correctes pour éviter tout problème par la suite.
Cliquez sur le lien et validez votre code.
Retournez sur NameCheap.com, votre certificat SSL est prêt.
Si vous retournez dans votre espace personnel, vous verrez que votre certificat a été correctement créé. Pas d’inquiétude, vous n’aurez rien à télécharger depuis votre espace personnel. Le certificat à proprement parlé va arriver dans votre boîte email au format d’une archive ZIP (d’où l’important de saisir une adresse email valide).
Selon le type d’utilisation que vous souhaitez faire du certificat SSL, vous recevrez plusieurs fichiers. Concernant notre cas d’utilisation avec le QNAP, nous n’aurons besoin que du dernier fichier Your positiveSSL Certificate. Le fichier .CRT est facile à repérer car dans le cas présent il est nommé avec l’URL que vous avez précédemment défini en Common Name (avec des underscores à la places des points).
Je vais donc prendre le fichier qui porte le nom : xxxx_akril_net.crt. Là, soit vous importer l’ensemble du fichier sur le NAS, ou bien vous copier-coller le contenu du fichier sur le portail d’administration du NAS, le résultat est le même.
Pour ce faire, une fois identifié sur votre portail d’administration, rendez-vous dans la section qui se trouve dans Paramètres système, Sécurité et dans l’onglet Clé privée et certificat.
Vous devez alors copier-coller dans le premier champs le contenu du fichier que vous avez reçu par email de NameCheap.com et qui correspond à votre certificat SSL. Et dans le second champ, vous devez copier-coller le contenu de votre private key (le second fichier que nous n’avions pas encore utilisé et que nous avions généré tout au début ; il s’agit du server.key dans notre cas).
Copier-coller l’ensemble des informations (vous pouvez même conserver les balises BEGIN / END CERTIFICATE) dans le portail d’administration du NAS.
Cliquez sur Télécharger pour lancer l’import du nouveau certificat et de sa clé privée sur votre NAS.
Et voilà, l’import s’est correctement déroulé. Vous pouvez dès à présent actualiser la page (et si nécessaire vider le cache de votre navigateur) pour vérifier que vous pouvez bien accéder à votre NAS via l’URL en HTTPS et qu’il n’y aura plus d’avertissement concernant la présence d’un certificat non-signé (ou l’absence complète de certificat).
Pour vous en assurer, vous pouvez cliquer sur le cadenas visible dans la plupart des navigateurs, celui-ci est « verrouillé » et ne renvoi aucun alerte.
Ci-dessous l’aperçu vu de Google Chrome lorsque vous cliquez sur le cadenas pour obtenir des informations sur le certificat. Ci-dessous l’aperçu via Internet Explorer, lorsque vous souhaitez obtenir des détails sur le certificat appliqué à la page que vous visitez.
Dans les deux cas, nous avons bien la confirmation du chiffrement de la connexion.
Bien entendu, la démarche est applicable à d’autres NAS ou d’autres sites, il vous suffit de repérer l’option ou la façon d’importer les différents éléments (server.crt, private.key, …) au sein de votre serveur web.
Il vous manque une précision ou vous avez une question, n’hésitez pas à demander dans les commentaires ! 🙂
Quelques liens :
- NameCheap.com pou acheter un certificat SSL pas cher ! 😉
- Activer votre certificat SSL NameCheap.com
- Wiki QNAP
Salut,
Sympa ton article.
J’ai également un certificat SSL pour mon NAS mais je me pose tout de même une question. Lorsque je suis chez moi, je me connecte a celui-ci en local. Est il possible d’avoir un certificat SSL local afin de ne plus avoir le message d’avertissement ?
Merci.
Bien sûr, ce que je décris dans cet article fonctionne pour l’interne ou l’externe. Par exemple, moi j’ai une URL avec un domaine qui me permet d’accéder en permanence à mon NAS. Cette URL est accessible depuis l’interne comme l’externe. L’important lorsque tu génères le certificat SSL et de ne pas te tromper lorsque tu vas spécifier le hostname auquel sera rattaché le certificat. NameCheap c’est très bien, mais si effectivement on se trompe lors de la génération du certificat, je crois que même en contactant le support c’est mort. Il faut re créer un nouveau certif et donc payer à nouveau.
Tu veux dire qu’en local me connecter sur l’adresse 192.168.0.1 revient au même sur si je passe par l’url certifiée ?
Le fait de passer par l’internet n’empeche pas le réseau local ? Je doute…
Non effectivement, mais l’un empêche pas l’autre. Personnellement, si je souhaite accéder au NAS en web, je n’utilise plus que l’URL publique que je sois chez moi ou à l’extérieur. Cependant, en interne, je pourrais aussi choisir de me connecter avec l’URL suivante https://192.168.0.28 qui correspond à l’IP en interne. Dans ce cas de figure, cela fonctionnera tout aussi bien mais, comme tu t’en doutes, tu as alors l’erreur de certificat car l’URL saisit dans le navigateur ne correspond pas à celle du certificat SSL. Cela dit, ce n’est à priori pas bloquant puisque seul toi et tes utilisateurs internes verront l’avertissement. Après, il reste le cas de figure où je souhaite monter les partage réseau disponibles sur le NAS, là bien sûr, il faut être en interne et j’utilise l’IP interne mais dans ce cas de figure le certificat SSL nous importe peu. Dans tous les cas, à vérifier, mais je ne suis pas certain qu’un QNAP puisse prendre en charge plusieurs certificats (on pourrait imaginer que tu lui crées une URL sur ton réseau local si tu dispose d’une infra avec un AD ou similaire).
Ce que je veux dire par là, c’est qu’en te connectant sur l’URL publique ton taux de transfert est bridé par ta connexion internet.
Par contre si tu passes par l’IP local le débit doit être supérieur si t’as un réseau en Gygabyte.
C’est principalement pour cela que je me connecte généralement en local.
C’est vrai tu as tout à fait raison ! Après étant fibré, cela reste rapide dans les 2 cas donc j’avoue que pour le confort j’ai pris l’habitude d’utiliser l’URL externe indépendamment du fait que je sois chez moi ou non.
Bonjour,
j’ai un Nas Qnap en version QTS 4.2
j’ai téléchargé le certificat et la clé et fait la mise à jour.
je ne peut pas accéder à une ressource webdav à partir de mon iPAD (ios9)
j’ai un message : le certificat d’accès n’est pas valide
je ne comprend pas
est-ce que je dois acheter un certificat signé ?
JC Chap
Bonjour chaptw,
Bien sûr ! Il te faut un certificat signé par une autorité externe.
Par contre, je ne vois pas ce bien ce que tu as testé dans ta capture d’écran mais dans tous les cas ça ne marchera pas ou ça générera un message d’erreur. Rien que quand on regarde la date d’expiration du certificat on voit que ça ne colle pas : Expire Août 2012 ; la date est déjà révolue.
Cela dit, tu peux éventuellement déjà essayer de créer un certificat auto-signé en suivant cet excellent lien : http://www.linux-france.org/prj/edu/archinet/systeme/ch24s03.html. Cela te permettra de vérifier que tu comprends la démarche et que tu parviens à la configurer. Mais il faut savoir un peu dialoguer avec ton NAS en lignes de commandes.
Par ailleurs, si c’est le coût qui te gène, tu peux regarder du côté https://letsencrypt.org/ – je n’ai pas personnellement testé mais apparemment c’est une nouvelle méthode très à la mode qui permettrait de signer une URL avec un certificat sans avoir le coût du certificat auprès de l’autorité (sinon là ou je récupère le miens c’est 8 euros / an).
Thibault.
Bonjour, absolument. Vous devez investir dans un véritable certificat. Vous ne pouvez pas utiliser un certificat non-signé (ou en tout cas vous aurez toujours la page rouge qui vous dit que ce certificat n’est pas signé / secure). Personnellement, je les prends chez Namecheap ils coûtent moins de 10 $ / an ce qui fait 7 ou 8 euros en fonction du taux et ils fonctionnent très bien. J’en ai déjà 4 pour divers utilisations. Enfin dernier point, cet article décrit la mise en place d’un certificat dans pour y accéder par l’interface web. Pour moi, cela n’a rien à voir avec WebDav (qui est une manière différente d’accéder aux données de votre NAS).
Bonjour,
D’abord, grand merci pour ce tuto.
Comme je ne sais pas où entrer la commande sur mon NAS, je le fais via SSH depuis le terminal de mon mac. La commande fonctionne, j’entre chaque information mais à la fin rien ne se passe. Un indice?
C’est tout à fait ça. Ce n’est peut-être pas suffisamment explicite sur l’article (et j’en suis désolé) mais pour exécuter ces commandes j’utilise également soit mon Mac en me connectant en SSH avec le Terminal sur mon NAS ou bien PuTTY si j’avais été sous Windows. Mais en effet, ces commandes doivent être exécutées sur le NAS (après une connection SSH – et non pas directement sur votre Mac).
Bonjour,
Heureusement qu’il y a des personnes qui prennent un peu de leur temps pour aider les autres.
Merci pour ce tuto.
Je ne connais pas grand chose aux lignes de commandes mais qu’est ce qu’il faut saisir comme commande avant de saisir : »server.csr server.key » pour obtenir les 2 fichiers ?
J’ai déroulé l’ensemble du process mais je n’obtiens pas les 2 fichiers.
Je saisie à la fin du process dans PUTTY :
[lavixxxxxxxxxxxin ~]$ server.csr server.key
Mais rien ne se passe.
D’avance merci
Christophe
Bonjour Christophe, c’est la première commande tout en haut que tu dois exécuter : openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr. Elle te permettra de générer les 2 fichiers en même temps dont on parle après dans la suite de l’article. Es-tu bien parvenu à te connecter en SSH à ton NAS ? 🙂
Merci pour le retour. J’ai effectivement bien saisi la commande complète.
A priori j’ai bien été connecté, je te laisse voir l’image ci-jointe à moins que ton oeil averti m’indique le contraire …
Et bien jusque là cela me semble parfait. Il ne reste plus qu’à utiliser le CSR (certificate request) du côté de votre fournisseur / société qui va vous fournir le certificat. Savez-vous qui vous allez utiliser ? Le même que je mets en avant ou un autre (quoiqu’il en soit, le procédé sera sensiblement le même). Si vous le souhaitez et que vous avez un Skype on peut s’ajouter cela serait plus instantané.
Cela semble correct mais je n’ai pas vu dans la console putty le CSR.
Je vais prendre un certificat namecheap
Encore merci
OK pour moi dans l’après-midi. Vers 16h ou 16h30 dans mon cas. Par contre votre pseudo me semble un peu étrange.
ok à partir de 16 h.
Encore merci pour votre disponibilité.
Merci Thibault pour les informations précieuses que vous m’avez transmises lors de cet échange.
Avec plaisir Christophe. N’hésitez pas au besoin pour toute autre question. Le fonctionnement avec un IP dynamique + CNAME est certainement techniquement faisable. Mais je doute que vous restiez sur le long terme avec une solution comme celle-ci – dès lors que c’est un besoin d’entreprise.
Merci pour ce tuto, vraiment complet. Par contre, la procédure indiquée est-elle identique pour l’achat d’un certificat wildcard? J’ai un nom de domaine et plusieurs sous-domaines.
A priori non, si vous disposez d’un wildcard vous n’aurez probablement qu’à le déclarer au niveau de votre NAS (donc toute la première partie avec NameCheap serait inutile dans votre cas) et si l’URL commence bien par XXXX.domaine.tld et que le certificat protège bien *.domain.tld alors vous ne devriez pas avoir grand chose de plus à faire. Avec un wildcard, c’est en général un peu plus simple, mais ils sont souvent plus onéreux.