HTTPS

Principe

HTTPS (avec S pour secured, soit « sécurisé ») est la simple combinaison de HTTP avec SSL.

Il permet au visiteur de vérifier l'identité du site auquel il accède grâce à un certificat d'authentification.

Il garantit la confidentialité et l'intégrité des données envoyées par l'utilisateur (notamment des informations entrées dans les formulaires) et reçues du serveur.

L'authentification est réalisée par l'utilisation d'un certificat numérique X.509 délivré par une autorité de certification.

Le chiffrement est réalisé par un chiffrement asymétrique, comme par exemple l'algorithme RSA.

Autorité de certification (CA)

En cryptographie, l'autorité de certification (AC ou CA) a pour mission, après vérification de l'identité du demandeur du certificat par une autorité d'enregistrement, de signer, émettre et maintenir les certificats.

  • Verisign
  • Thawte
  • Global Sign
  • ...
Clé privée RSA (server.key)

Un fichier de clé privée RSA est un fichier numérique que vous pouvez utiliser pour déchiffrer des messages que l'on vous a envoyés.

Il a son pendant à caractère public que vous pouvez distribuer (par le biais de votre certificat), ce qui permet aux utilisateurs de chiffrer les messages qu'ils vous envoient.

Demande de Signature de Certificat (CSR)

Une Demande de Signature de Certificat (CSR) est un fichier numérique qui contient votre clé publique et votre nom.

La CSR doit être envoyée à une Autorité de Certification (CA), qui va la convertir en vrai certificat en la signant.

Certificat (server.crt)

Un certificat contient votre clé publique RSA, votre nom, le nom de la CA, et est signé numériquement par cette dernière.

Les navigateurs qui reconnaissent la CA peuvent vérifier la signature du certificat, et ainsi en extraire votre clé publique RSA.

Ceci leur permet de vous envoyer des messages chiffrés que vous seul pourrez déchiffrer.

Obtention d'un certificat

L'Autorité de certification commerciale vous demandent en général d'envoyer la CSR par l'intermédiaire d'un formulaire web, de régler le montant de la signature, puis vous envoient un certificat signé que vous pouvez enregistrer dans un fichier server.crt.

Configuration du serveur Apache

Le fichier de configuration du protocole SSL du serveur Apache est généré lors de l'installation du serveur X3WEB.

  • Path : WebTools\SOFTS\HTTPD\conf\extra\httpd-ssl.conf
  • WebTools est le répertoire 'Tools' défini lors de l'installation du serveur X3WEB

# Server Certificate:
SSLCertificateFile "C:/SAGE/WebREFJULIET/WebTools/SOFTS/HTTPD/conf/server.crt"

# Server Private Key:
SSLCertificateKeyFile "C:/SAGE/WebREFJULIET/WebTools/SOFTS/HTTPD/conf/server.key"

Les emplacements des fichiers certificat (.crt) et clé privée (.key) sont les suivants:

  • WebTools\SOFTS\HTTPD\conf\server.crt
  • WebTools\SOFTS\HTTPD\conf\server.key

Les fichiers server.crt et server.key livrés par défaut sont des fichiers de test livrés par la fondation Apache.

Le fichier server.crt n'est pas certifié par une autorité de certification et n'est donc pas reconnu (validé) par les navigateurs.

Pour configurer correctement le protocole SSL il faut générer un fichier clé privée server.key et effectuer une demande de certificat (server.crt) auprès d'une autorité de certification puis remplacer les fichiers existant en conservant le même nom.

Lorsqu'on patch un serveur X3WEB il faut sauvegarder les fichiers server.crt et server.key et les recopier après installation du patch.

Création d'un certificat de test Verisign

L'autorité de certification Verign (http://www.verisign.fr) propose un certificat SSL d'essai gratuit d'une durée limitée.

Nous indiquons à titre d'illustration la méthode à suivre pour :

  • créer la clé privée et la demande de signature de certificat (CSR) avec la boite à outils OpenSSL
  • obtenir le certificat de test auprès de Verisign.

Ce document complète les instructions fournies par Verisign.
http://www.verisign.fr/support/ssl-certificate-support/page_fr_fr_dev019500.html

Étape 1 - Installer OpenSSL

L’utilitaire « openssl » (http://www.openssl.org) sert à générer la clé et la demande de signature de certificat (CSR).

Télécharger OpenSSL (sous windows).
http://www.openssl.org/related/binaries.html

1. Installer 'Visual C++ 2008 Redistributables'

2. Installer 'Win32 OpenSSL v0.9.8j Light' ou 'Win64 OpenSSL v0.9.8j Light'

3. Utiliser la commande \OpenSSL\Bin\openssl.exe

Étape 2 - Générer une clé privée

openssl genrsa -des3 1024 > verisign.key

Documentation genrsa.
http://www.openssl.org//docs/apps/genrsa.html

Étape 3 - Générer une requête de signature de certificat

openssl req -new -key verisign.key verisign.csr

Documentation req.
http://www.openssl.org//docs/apps/req.html

1. Saisir le mot de passe de la clé privé

2. Saisir les informations sur le certificat

Saisir le Nom de Domaine Pleinement Qualifié ("Fully Qualified Domain Name" ou FQDN) de votre serveur lorsque OpenSSL vous demande le Common Name (eg, YOUR name).

Si vous générez une CSR pour un site web auquel on accèdera par l'URL https://www.mysite.com/, le FQDN sera www.mysite.com

Généralement on achète un certificat par Nom de Domaine Pleinement Qualifié.

Pour générer un certificat auto-signé

Ce certificat n'a pas besoin d'être signé par une autorité de certification mais n'est pas reconnu par le navigaeteur. Utiliser la commande suivante :

openssl req -x509 -key verisign.key -in verisign.csr > verisign.crt

Étape 4 - Demande de certificat

Ouvrir l'URL http://www.verisign.fr/ssl/index.html et cliquer sur 'Essai gratuit'.

1. Remplir le formulaire de demande

2. Remplir le formulaire du contact technique

3. Remplir le formulaire du certificat

      • Sélectionner 'Serveur Apache'
      • Ouvrir le fichier CSR verisign.csr avec un éditeur de texte et copier le contenu
      • Coller le contenu texte dans la zone de saisie
      • Sélectionner l'utilisation Serveur WEB et valider
      • Saisir le mot de passe du certificat et valider

5. Le certificat est envoyé par email

6. A réception du certificat

      • Copier le certificat
        texte entre -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----
      • Ouvrir NotePad(++) et coller le certificat
      • Enregistrer le certificat avec l'extension .crt (verisign.crt)

Faire un copie des fichiers verisign.key et verisign.crt et conserver les mots de passe.

Étape 5 - Installation du certificat

Copier/Remplacer les fichiers verisign.key et verisign.crt sous server.key et server.crt dans le répertoire WebTools\SOFTS\HTTPD\conf\

Paramètres de configuration

X3Web

Les applications XTEND utilisent le port HTTPS.

Vérifier que que le paramètres console ALL.Apache.APACHESSL qui active le mode SSL du serveur Apache à pour valeur yes

Les ports HTTP et HTTPS pour accéder aux applications XTEND sont donnés par les paramètres xtend.server.gensetup.http.defhttpport et xtend.server.gensetup.http.defhttpsport.

Ces paramètres doivent obligatoirement être renseignés.

XTEND

Le tableau présente les paramètres de configuration du serveur XTEND accessible via la console (paramètres avancé).

Paramètre

Valeur par défaut

Description

xtend.session.trace.xtend

off

Trace session XTEND

xtend.session.trace.httpreq

off

Trace des requêtes http

xtend.session.trace.wsvc

off

Trace web services

xtend.session.wait.timeout

1500

Timeout d'attente en ms d'une requête XTEND si la session est occupée (traitement d'une autre requête)

xtend.server.data.localpath

/data/local

Http alias pour accéder aux ressources locales au serveur X3WEB (voir httpd.conf)

xtend.server.data.protectdir

x_protect

Identification des dossiers XTEND qui sont protégés

xtend.server.reposit.local

off

Localisation du dictionnaire XTEND et autres données xml publiés par XTEND
On : en local du serveur X3WEB
Off : en remote sur le serveur X3

xtend.server.menux3.local

off

Localisation des menus X3 (voir xtend.server.reposit.local)

xtend.server.x3httpsrv.secured

off

Protocole http/https pour accès au serveur Http des solutions
On : nécessite d'activer manuellement le mode ssl du serveur Http de la solution

xtend.server.x3httpsrv.readtimeout

30000

Timeout (ms) lors de la lecture d'une ressource sur le serveur Http de la solution

xtend.server.x3httpsrv.cnxtimeout

30000

Timeout (ms) lors de la connexion au serveur Http de la solution

xtend.server.activitylog.level

1

Suivi de l'activité - Niveau de trace - 0 : off - 1 : Normal - 2 : Verbose

xtend.server.activitylog.filenumber

10

Suivi de l'activité - Nombre de fichiers log

xtend.server.activitylog.filesize

10000000

Suivi de l'activité - Taille en octets d'un fichier log

xtend.server.virtualpath.context

/xtend

Path de la web application XTEND

xtend.cxtdtracesvc.trace.server.host

Hostname du serveur de trace

xtend.cxtdtracesvc.trace.server.port

1515

Port TCP du serveur de trace

xtend.cxtdtracesvc.tracesvc.canal.level

9  

Niveau du serveur de trace

xtend.cxtdtracesvc.tracesvc.canal.name

SXTD  

Prompt du serveur de trace

xtend.cxtdtracesvc.tracesvc.canal.on

off  

Trace active

xtend.cxtdtracesvc.tracesvc.on

off  

Trace active

xtend.server.gensetup.defsite.x3sol

 

Code solution X3 par défaut si non spécifié dans l'URL

xtend.server.gensetup.defsite.x3fldr

 

Code dossier X3 par défaut si non spécifié dans l'URL

xtend.server.gensetup.defsite.xtdsite

 

Code site XTEND par défaut si non spécifié dans l'URL

xtend.server.gensetup.deflang

 

Code langue XTEND par défaut si non spécifié dans l'URL

xtend.server.gensetup.http.defhttpport

28880   

Port HTTP du serveur XTEND

xtend.server.gensetup.http.defhttpsport

28443  

Port HTTPS du serveur XTEND

xtend.server.gensetup.http.cookie.sess.persist

on  

Persistance des cookies sur le poste utilisateur (on/off)

xtend.server.gensetup.http.cookie.disabled

  

off

Indique si XTEND doit fonctionner sans les cookies
Dans ce cas l'id session est propagé dans toutes les URL's
L'action utilisateur ASESSSWITCHCOOKIES permet de surcharger ce paramètre

xtend.server.gensetup.http.session.timeout


60


Durée maximale d'inactivité de la session TOMCAT en minutes
Passé ce délai la session est détruite et toutes les données sont perdues
Ne pas confondre avec le TimeOut de la session XTEND saisi dans le fiche 'site web' qui déconnecte l'utilisateur pour forcer le logon à la prochaine connexion.

xtend.server.gensetup.http.askreferer

 on

Demande du http referer si non présent dans les headers HTTP
Permet de gérer l'accès à XTEND via des 'reverse proxies'

xtend.server.gensetup.proxies.hosts

Hostnames des reverse proxies qui accèdent à XTEND séparés par des 'blancs'

xtend.server.gensetup.proxies.portshttp

Ports http des reverse proxies qui accèdent à XTEND séparés par des 'blancs'

xtend.server.gensetup.proxies.portshttps

Ports https des reverse proxies qui accèdent à XTEND séparés par des 'blancs'

xtend.server.gensetup.html.req.charset



utf-8



Décodage de la réponse http (utilisé pour l'encodage des champs input)
Si !=null
-> Force request.setCharacterEncoding("CharSet")
-> Force attribut "Accept-Charset"="CharSet" du tag form
-> Force présence du tag <meta http-equiv="Content-Type" content="text/html; charset=CharSet">

xtend.server.gensetup.html.resp.charset  

utf-8 

Encodage de la réponse http

xtend.server.gensetup.html.chunked  

off  

on : pour activer le mode chunked (paquet)
Attention le mode chunk ne permet pas toujours d'afficher les pages d'erreur

xtend.server.gensetup.html.buffersize  

 0

Taille du buffer pour la reponse http

xtend.server.gensetup.misc.rtnstacksize  

 20

Nombre maximum d'élements dans la pile des page pour la gestion de l'action du retour (ADLKRETURN)

xtend.server.gensetup.defcharset


 CP1252


Charset par défaut pour la lecture des ressources text (défaut Charset de la plate-forme)
Souvent le projet HTML est créé sous Windows et uploadé sur X3
Si les fichiers html n'ont pas de BOM(byte order mark) on veut pouvoir forcer le charset pour décoder les contenus des fichiers
indépendemment de l'OS sous lequel tourne X3WEB