Le serveur Web 4D peut communiquer en mode sécurisé via le protocole SSL (Secured Socket Layer).
Le protocole SSL a pour but de sécuriser les communications entre deux applications — généralement un serveur Web et un navigateur. Ce protocole est largement répandu et compatible avec la plupart des navigateurs Web.
Au niveau de l’architecture réseau, le protocole SSL s’insère entre la couche TCP/IP (bas niveau) et le protocole de haut niveau HTTP, pour lequel il est principalement destiné.
Architecture réseau utilisant SSL :
![](../../picture/38327/pict38327.fr.png)
Note : Le protocole SSL peut également être utilisé pour sécuriser les connexions client/serveur “classiques” de 4D Server ainsi que les connexions du serveur SQL. Pour plus d’informations, reportez-vous à la section Crypter les connexions client/serveur dans le manuel de référence de 4D Server ainsi qu'à la section Configuration du serveur SQL de 4D dans le manuel de référence SQL.
Le protocole SSL permet de garantir l’identité de l’émetteur et du récepteur, ainsi que la confidentialité et l’intégrité des informations échangées :
- Identification des intervenants : l’identité de l’émetteur et du récepteur sont confirmées.
- Confidentialité des informations échangées : les données envoyées sont cryptées afin de les rendre inintelligibles pour les tiers non autorisés.
- Intégrité des informations échangées : les données reçues n’ont pas été altérées, frauduleusement ou accidentellement.
Les principes de sécurisation utilisés par SSL sont basés sur l’emploi d’un algorithme de cryptage utilisant une paire de clés : une clé privée et une clé publique.
La clé privée est utilisée pour crypter les données. Elle est conservée par l’émetteur (le site Web). La clé publique est utilisée pour décrypter les données. Elle est diffusée auprès des récepteurs (les navigateurs Web), via le certificat. L’emploi du SSL dans le cadre d’Internet requiert en effet l’entremise d’un opérateur de certification tel que, par exemple, Verisign®. Moyennant une participation financière du site Web demandeur, cet organisme délivre un certificat, garantissant l’identité du serveur et contenant la clé publique permettant la communication en mode sécurisé.
Note : Pour plus d’informations sur les principes généraux de cryptage et d’emploi de clés publiques/clés privées, reportez-vous à la description de la commande CRYPTER BLOB.
La mise en place d’un serveur Web 4D fonctionnant en SSL nécessite un certificat numérique délivré par un opérateur de certification. Ce certificat renferme diverses informations dont la carte d’identité du site ainsi que la clé publique utilisée pour communiquer avec lui. Il est transmis aux navigateurs Web se connectant au site. Une fois qu’il est accepté, la communication en mode sécurisé s’établit.
Note : Pour qu’un navigateur accepte les certificats d’une autorité de certification, celle-ci doit être répertoriée dans ses Propriétés.
![](../../picture/38328/pict38328.fr.png)
Le choix de l’autorité de certification dépend de plusieurs facteurs. Plus l’autorité est “connue”, plus le nombre de navigateurs acceptant les certificats qu’elle délivre sera important, mais plus le prix à payer sera élevé. Verisign® est une des autorités de certifications les plus utilisées.
Pour obtenir un certificat SSL :
1. Générez une “clé privée” à l’aide de la commande GENERER CLES CRYPTAGE.
Attention : Pour des raisons de sécurité, la clé privée ne doit JAMAIS être diffusée sur un réseau. En fait, elle ne doit pas quitter le poste serveur Web. Le fichier Key.pem doit être placé dans le dossier de la structure de la base.
2. Etablissez une demande de certificat à l’aide de la commande GENERER DEMANDE CERTIFICAT.
3. Envoyez la demande de certificat à l’autorité de certification que vous avez choisie.
Pour remplir la demande de certificat, il vous sera peut-être nécessaire de contacter l’autorité de certification. Les autorités de certification vérifient la réalité des informations qui leur ont été transmises.
La demande de certificat est générée dans un BLOB au format PKCS encodé en base64 (format PEM). Ce principe autorise le copier-coller des clés sous forme de texte et leur envoi par E-mail en toute sécurité, sans risque d’altération de leur contenu. Vous pouvez donc par exemple sauvegarder le BLOB contenant la demande de certificat dans un document texte (à l’aide de BLOB VERS DOCUMENT), puis l’ouvrir et copier-coller son contenu dans un E-mail ou un formulaire Web destiné à l’autorité de certification.
4. Une fois que vous avez reçu votre certificat, créez un fichier texte que vous nommerez “Cert.pem” et copiez dans ce fichier le contenu du certificat.
Vous pouvez recevoir votre certificat sous plusieurs formes (généralement via un E-mail ou un formulaire HTML). Le serveur Web 4D accepte la plupart des formats de texte (Mac OS, PC, Linux...) pour les certificats. En revanche, le certificat doit être au format PEM, c'est-à-dire PKCS encodé en base64.
5. Placez le fichier “cert.pem” dans le dossier contenant la structure de la base.
Le serveur Web peut dès lors fonctionner en mode SSL. La durée de validité d’un certificat varie généralement entre six mois et un an.
Pour que vous puissiez utiliser le protocole SSL avec le serveur Web de 4D, plusieurs éléments doivent être présents sur le serveur, à différents emplacements :
- 4DSLI.DLL (Windows) ou 4DSLI.bundle (Mac OS): interface de la couche sécurisée (Secured Layer Interface) dédiée à la gestion du SSL.
Ce fichier est installé par défaut, il est placé :
- sous Windows, à côté du fichier exécutable de l'application 4D ou 4D Server
- sous Mac OS, dans le sous-dossier Native Components du progiciel 4D ou 4D Server.
- key.pem (document contenant la clé de cryptage privée) et cert.pem (document contenant le certificat) :
- avec 4D en mode local ou 4D Server, ces fichiers doivent se trouver à côté du fichier de structure de la base.
- avec 4D en mode distant, ces fichiers doivent se trouver dans le dossier des ressources locales de la base sur le poste distant (pour plus d'informations sur l'emplacement de ce dossier, reportez-vous au paragraphe Dossier base 4D Client dans la description de la commande Dossier 4D). A noter que vous devez copier ces fichiers manuellement sur le poste distant.
Note : La présence du composant 4DSLI.DLL est également nécessaire pour l’utilisation des commandes de cryptage des données CRYPTER BLOB et DECRYPTER BLOB.
L'installation de ces éléments rend possible l'utilisation du SSL dans les connexions au serveur Web 4D. Toutefois, pour que les connexions SSL soient acceptées par le serveur Web 4D, vous devez “activer” SSL. Ce paramètre est accessible dans la page Web, onglet Configuration des Propriétés de la base :
![](../../picture/254380/pict254380.fr.png)
Par défaut, les connexions SSL sont autorisées. Vous pouvez désélectionner cette option si vous ne souhaitez pas exploiter les fonctionnalités SSL avec votre serveur Web, ou si un autre serveur Web autorisant les connexions sécurisées fonctionne sur le même poste.
Le port TCP utilisé pour les connexions SSL est par défaut le 443. Ce numéro de port peut être modifié dans la zone Numéro de port HTTPS afin, par exemple, de renforcer la sécurité du serveur Web (pour plus d'informations sur ce point, reportez-vous à la section Paramétrages du serveur Web). Le port TCP défini dans cette page de propriétés est utilisé pour les connexions du serveur Web en mode standard.
Note : Les autres propriétés de gestion du serveur Web 4D (mots de passe, délai avant déconnexion, taille du cache, etc.) restent appliquées, que le serveur fonctionne en mode SSL ou non.
Pour qu’une connexion Web s’effectue en mode sécurisé, il suffit simplement que l’URL envoyé par le navigateur débute par “https” (au lieu de “http”).
Dans ce cas, une boîte de dialogue d’alerte apparaît sur le navigateur. Une fois la boîte de dialogue validée, le certificat est envoyé au navigateur par le serveur Web.
![](../../picture/38330/pict38330.fr.png)
Les deux parties “négocient” alors l’algorithme de cryptage qui va être utilisé pour la connexion.
Le serveur Web 4D dispose de plusieurs algorithmes de cryptage symétriques (RC2, RC4, DES...). L’algorithme commun le plus puissant est utilisé.
Attention : Le niveau de cryptage autorisé est soumis à la législation en vigueur dans le pays d’utilisation.
L’utilisation de SSL dans le serveur Web 4D ne nécessite pas de configuration système particulière. Toutefois, vous devez tenir compte du fait qu’un serveur Web SSL peut également fonctionner en mode non sécurisé. Le changement de mode de connexion peut s’effectuer si le navigateur en fait la demande (il suffit à l’utilisateur, dans la zone d’URL du navigateur, de remplacer “HTTPS” par “HTTP”). Il revient au développeur d’interdire ou de rediriger les requêtes effectuées en mode non sécurisé — la routine WEB Connexion securisee permet de connaître le mode de connexion courant.