Entêtes de sécurité SSL

Quelques explications sur css directives du fichier htaccess
Suite à l'installation d'un certificat SSL/TLS sur votre nom de domaine chez votre hébergeur, le trafic ne sera pas nécessairement redirigé vers HTTPS.

Petite définition de SSL

Un certificat SSL est un fichier de données qui lie une clé cryptographique aux informations d'une organisation. Installé sur un serveur, le certificat active le cadenas et le protocole « HTTPS », afin d'assurer une connexion sécurisée entre le serveur web et le navigateur. Le SSL est généralement utilisé pour sécuriser les transactions bancaires, le transfert de données et les informations de connexions. Il est récemment devenu la norme pour sécuriser la navigation sur les sites de réseaux sociaux.

En bref, même si cela n'est en rien nécessaire lors d'une simple consultation de pages sur le Web qui ne demandent pas de s'authentifier ni ne véhiculent la moindre donnée confidentielle, le protocole HTTPS remplace peu à peu HTTP. Toutes les données échangées entre un navigateur sur le poste client et un serveur distants sont cryptées par HTTPS ! Google a même annoncé qu'il privilégie les sites Web en HTTPS au détriment des sites accessibles uniquement en HTTP. C'est un comble.

Si seules les entreprises "bien intentionnées" pouvaient acheter un certificat SSL, cette sécurisation pourrait avoir un sens. Mais comme n'importe quel margoulin ou sagouin peut acheter un certificat, il ne sécurise plus rien ! Mais une nouvelle niche commerciale et rentable est née : la vente de certificat SSL.

Lorsque vous lisez une page du journal en ligne "Le Monde", le site étant protégé par un certificat SSL, la page que vous lisez a été cryptée par le serveur et décryptée par votre navigateur. Quelques millisecondes de temps de processeur inutile. Ce ne sont que quelques millisecondes, me direz-vous. Oui, mais démultipliées par des milliards de connexions...

Voir mon article "HTTPS de quoi se même Google ?".

Si vous tentez d'accéder à un site Web avec le protocole HTTPS alors que le domaine ne dispose pas de certificat, vous verrez apparaître l'angoissant message "ce site n'est pas sécurisé" ou "votre connexion n'est pas privée". Ces message sont différents pour chaque navigateur, voire chaque version de navigateur. Immédiatement vous vous imaginez la proie de malfaisants pirates russes qui cherchent à vous nuire. Vous pensiez surfer innocemment sur le Web, ce sont les GAFAM qui surfent méchamment sur vos peurs :

C'est votre navigateur qui joue les chaperons et vous dissuade d'accéder à un bête site qui n'est pas encore en HTTPS ou dont le webmestre n'a pas procédé aux petits réglages vus sur cette page ! Mais vous pouvez demander à Firefox de vous lâcher la grappe et forcer votre passage au site souhaité.

Paramétrage SSL

Dans votre logiciel de gestion de contenu, vous aurez à régler quelques paramètres pour que toutes les demandes de page de votre site renvoient bien des pages via le protocole HTTPS. Vous devrez aussi ajouter une directive de redirection dans le fichier .htaccess

Suivez ce lien pour cette première manipulation :
https://docs.planethoster.com/guide/astuces-techniques/ssl-comment-redir...

Les principaux entêtes SSL à connaître :

  1. HTTP Strict Transport Security (HSTS)
    Interdit l'accès à un site cloné en HTTP en obligeant l'accès via HTTPS.
  2. Public Key Pinning (HPKP)
    Entête pour la banque et le commerce électronique.
  3. X-Frame-Options (XFO)
    Protège contre le « clickjacking » par le système de frames.
  4. X-XSS-Protection (XSS)
    Protège contre le « cross-site scripting » d'un site web dynamique.
  5. X-Content-Type-Options (XCTO)
    Protège contre les tentatives de reniflage « sniffing ».
  6. Content-Security-Policy (CSP)
    Définit de façon granulaire la source de chaque contenu.
  7. X-Permitted-Cross-Domain-Policy (XPCDP)
  8. Referrer Policy (RP)
    Supprime l'adresse du site comme référent.
  9. Expect-CT (ECT)
  10. Feature-Policy (FP)

Tous les détails sur les entêtes :
https://www.wpsecurity.press/fr/a-quoi-servent-les-en-tetes-http-de-secu...

Vérifiez le bon fonctionnement de votre redirection HTTPS sur ce site :
https://ssl-lookup.io/

Ajouter ces directives dans le ficher .htaccess

# Really Simple SSL
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Expect-CT "max-age=7776000, enforce"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always set X-Frame-Options "SAMEORIGIN"
# End Really Simple SSL

Chaque entête répond à un type d'attaque de pirate et force l'action du serveur. Le premier entête (Strict-Transport-Security) impose par exemple au serveur d'utiliser le protocole HTTPS et jamais HTTP. Les autres entêtes ne sont pas détaillés ici (mais ils le sont sur d'autres sites), mais avec ces quelques manipulations, un site est nettement plus sécurisé.

Vérifiez le niveau de sécurité de votre site avec ce site :
https://securityheaders.com/

Statistiques :

Identification :

Utilisateurs :

Il y a actuellement 1 utilisateur connecté.

Droits d'auteur :

Ce site est mis à disposition
sous un contrat Creative Commons :
http://creativecommons.org