en-CAfr-CA
 
     

Comment sécuriser un site DotNetNuke avec un certificat SSL

mai 08 2018

Pourquoi obtenir un certificat SSL

Pour commencer, démystifions un détail sémantique, SSL (Secure Socket Layer) est un ancien standard désuet pour la transmission sécurisée de données sur Internet, ce qui est utilisé aujourd'hui est TLS (Transport Layer Security. La différence est que l'encryption est déplacée sur une autre couche du modèle OSI, mais ceci n'est pas important pour nos besoins actuels. Tout le monde parle de SSL même si en fait, il s'agit techniquement de TLS, dans cet article, j'utiliserai le terme SSL pour désigner soit SSL ou TLS.

Il est également important de comprendre que SSL est seulement responsable d'encrypter le transport de données, il ne règle aucun autre problème de sécurité sur votre site par magie. Il est crucial de ne pas avoir un faux sentiment de sécurité seulement en obtenant un certificat SSL.

De plus en plus de sites utilisent SSL non seulement sur certaines pages, mais sur tout le site. L'utilisation de SSL a plus que doublé dans les 4 dernières années comme l'indique ce graphique de Mozilla Telemetry SSL Ratios:
SSL Usage

Pourquoi tous les sites devraient utiliser SSL en 2018

  • SSL est requis dès que vous acceptez des paiements en ligne afin de se conformer aux exigences PCI. Donc si vous acceptez des paiements en ligne, ce n'est pas une option.
  • SSL fourni un sentiment de confiance car un cadenas vert s'affiche près de l'adresse de votre site web.
  • SSL enlève un sentiment de méfiance car les navigateurs modernes affichent maintenant un avertissement indiquant que le site n'est pas sécurisé dès que l'utilisateur entre dans un formulaire, peu importe le type de formulaire, même le champ de recherche. Ceci peut effrayer certains utilisateurs et leur donner une raison d'aller vers votre compétiteur.
  • L'utilisation d'un certificat SSL peut être bénéfique pour vos efforts en SEO. Les algorithmes utilisés pas les moteurs de recherche sont des secrets bien gardés, mais plusieurs experts en SEO s'accordent pour dire que tout autre facteur étant égal, un site utilisant SSL sera placé plus haut qu'un site n'ayant pas SSL. Ceci confirme que dans la formule pour classer les résultats de recherche, SSL est un facteur.
  • Et la meilleure raison de toutes, il est maintenant possible d'obtenir un certificat SSL simplement, rapidement et gratuitement, alors pourquoi pas ?

Types de certificats SSL

Si on parle strictement de l'aspect technique, la seule spécification qui affecte la sécurité de la transmission est la longueur de la clé. Plus la clé est longue, plus il faudra de temps pour la déchiffrer malicieusement (il faut garder en tête que toute encryption peut être décryptée, il faut simplement beaucoup de temps pour le faire). En général des clés de 2048 bits sont utilisées de nos jours, une de ces clés pendrait plus de 1200 ans à déchiffrer avec un ordinateur puissant. Bien sûr ceci risque de changer dramatiquement si les ordinateurs quantiques deviennent plus accessibles. Bref, peu importe le type de certificat ci-bas, la sécurité est la même, c'est seulement comment l'utilisateur voit le certificat qui change.

  • DV (Domain Validation): Ce type de certificat est émis après avoir confirmé que le demandeur peut contrôler le nom de domaine. Ces certificats sont disponibles gratuitement ou pour un frais minime, ils sont généralement approuvés en quelques minutes. Pour confirmer la possession du nom de domaine, il ne suffit que de téléverser un petit fichier, modifier un enregistrement dns ou utiliser un outil qui automatise le processus. Dans la majorité des navigateurs, un cadenas vert sera visible à côté de l'adresse du site web.
  • OV (Organization Validation): Ce type de certificat vérifie également que l'organisation (la compagnie) qui a demandé le certificat existe et que ses informations de contact sont valides. La validation est faite par l'émetteur du certificat en se basant sur des informations gouvernementales publiquement disponibles (dans le cas du Québec, le registre des entreprises). Ces certificats ne sont pas disponibles gratuitement mais il s'agit bien souvent d'un coût raisonnable. Pour obtenir ce type de certificat votre organisation doit être enregistrée avec une entité gouvernementale. Ils sont généralement obtenus en quelques jours. La majorité des navigateurs vont afficher un cadenas vert près de l'adresse du site, ainsi que les coordonnées de l'entreprise dans les détails du certificat.
  • EV (Extended Validation): Pour ce type de certificat, l'émetteur va un peu plus loin et va enquêter l'entreprise et ses dirigeants. Ils sont les plus dispendieux des types de certificats mais afficheront également le nom de la compagnie en vert avec le cadenas dans la barre d'adresse.

Comment obtenir un certificat SSL

L'obtention et l'installation d'un certificat SSL varie selon que vous avez votre propre serveur ou vous utilisez un hébergement partagé. Si vous hébergez votre site avec un fournisseur d'hébergement, fiez-vous à leur instructions. Si vous hébergez votre site vous-même, je recommande l'utilisation de https://certifytheweb.com/, ce petit logiciel s'occupe d'obtenir les certificats gratuits, de configurer IIS et même de les renouveler. Ce logiciel est gratuit pour une petite quantité de sites et très abordable si vous avez plus de sites qu'en supporte la version gratuite. Le logiciel obtient des certificats de type DV https://letsencrypt.org/ qui sont gratuits, parfait pour les sites publics qui ne font pas de commerce en ligne ou n'ont pas de grandes exigences en rapport avec la vérification de l'entreprise. Si vous désirez un certificat de type OV ou EV, fiez-vous aux instructions fournies par l'émetteur pour le configurer dans IIS.

Activer SSL dans DotNetNuke

Une fois votre certificat configuré dans IIS, vous devez indiquer cette information à DotNetNuke, naviguez vers Settings - Security - More - et activez l'option SSL
Dnn settings security
Dnn enable SSL

Sauf si vous avez une configuration particulière, tous les autres champs peuvent rester vides. Votre site acceptera maintenant le traffic https mais aussi le traffic http. Sur chaque page, vous pouvez éditer le réglage "Secured" pour forcer cette page à toujours utiliser https. Si votre site a beaucoup de pages, il faudrait beaucoup de temps pour le faire sur chaque. Malheureusement, il ne semble pas y avoir aucune fonction dans DotNetNuke pour le faire sur toutes les pages, mais IIS peut nous aider.

Forcer SSL pour tout le site

Cette technique va créer un règle de redirection 301 pour toutes les resources du site vers la version https. Une redirection de type 301 va indiquer aux moteurs de recherche que la resource a été déplacée définitivement vers la version https, ce qui va mettre à jour leur informations et aider vos efforts SEO. Voici les instructions étape par étape:

  1. Ouvrez IIS, naviguez vers votre site puis double-cliquez sur URL Rewrite

    IIS URl Rewrite
  2. Puis cliquez sur Add Rule(s)... et dans la nouvelle fenêtre, choisissez blank rule et appuyez sur OK.
    Add blank rule
  3. Dans la section Match URL, entrez ce qui suit:
    1. Name: un nom de votre choix, je suggère: https-redirect
    2. Requested URL: Matches the Pattern
    3. Using: Regular Expression
    4. Pattern: (.*)
    5. Ignore case: coché
  4. Dans la section Conditions, entrez ce qui suit:
    1. Condition input: {HTTPS}
    2. Check if input string: Matches the Pattern
    3. Pattern: off
    4. Ignore case: coché
  5. Dans la section Action, entrez de qui suit:
    1. Action type: Redirect
    2. Redirect URL: https://{HTTP_HOST}/{R:1}
    3. Append query string: coché
    4. Redirect type: Permanent (301)
  6. Voici tous ces réglages en une image:
    Https redirect settings
  7. Cliquez apply dans la barre de droite et c'est fait. Testez votre site en navigant vers n'importe quelle page avec http: vous devriez être redirigé vers la version https:

Total: 2 Comment(s)
James David
  Thank you, Daniel. You have saved my time. I was about to do that.
· reply · 0 0 0
Daniel Valadas
Daniel Valadas  You are welcome
· reply · 0 0 0

Auteur

Daniel Valadas 10042 9

Calendrier

2018 juin 8 1
2018 mai 20 1
2014 oct. 510 3
2014 juin 4779 1
2014 févr. 3243 1
2012 mars 1477 1