Délégation Centre-Auvergne-Limousin

- Home - News - Conseils - SécuritéMise à jour  -  Liens  -  Accès  -

Délégation Centre-Auvergne-Limousin

Sécuriser une page web avec SSL et demander le certificat du client

Updated 20 septembre, 2004 Hervé Chaudret

Chapitre 1 : Installation d'une connexion SSL pour un serveur Web IIS 5 sur Windows 2000 sp4

 

Pré requis

le certificat du serveur est installé sur la machine Windows 2000 et dans le serveur IIS

Sécuriser une page HTML avec SSL

Avec le gestionnaire des services IIS sélectionner la page html à sécurisée puis clic droit Propriétés

Plusieurs solutions

  1. Vous sécurisez la transaction seulement cocher : Exiger un canal sécurisé (SSL) et Requérir le cryptage 128 bits (pour des raisons de sécurité au détriment de la vitesse) et Ignorer les certificats clients
  2. Vous voulez n'autorisé que certains utilisateurs que vous choisirez en fonction de leur certificat personnel. Cocher en plus : Exiger les certificats clients et Activer le mappage de certificat client.

1er solution : la page requérra une connexion SSL pour s'établir. Le serveur Web enverra son certificat au client. Le client vérifiera la validité du certificat en comparant la clé publique qu'il détient dans son navigateur. c'est pour cette raison que le client Web SSL doit récupérer la clé publique de l'autorité de certification. l'accès à cette page se fait sans oublier la balise HTTPS https://nom_du_site/page.htm Le client, correctement paramètre verra le cadenas symboliser la connexion sécurisée quand i l chargera cette page.

2éme solution : Vous voulez sélectionner les utilisateurs en fonction de leur certificat. Il faut Exiger les certificats clients. Le serveur IIS demandera un certificat au client. Le client présentera un certificat et il accédera à la page. Le serveur chargera en mémoire le certificat du client, mais n'effectuera pas de test. Si vous voulez sélectionner en fonction du certificat présenté vous devez soit

  • Soit activer le mappage de certificat client

  • Soit développer une page ASP pour, par programmation sélectionner suivant vos critères

Activer le Mappage de certificat client

Principe général du mappage de certificat. Soit en fonction d'un certificat précis ou en fonction d'une règle sur les certificats, un lien est fait avec un compte local sur le serveur Web. Pour cela il faut déclarer un compte local qui aura des droits NTFS sur les fichiers html.

 Par exemple : Déclarer un compte local UserSSL affecter un mot de passe. dans l'explorateur Windows sur la page SSL correspondante, ne donner les droit de lecture qu'au UserSSL.

Pour permettre à IIS d'authentifier un utilisateur en vérifiant le contenu du certificat envoyé par le client Web, vous devez activer le Mappage de certificat client et sélectionner Modifier

2 Onglets sont à votre disposition 

1 à 1

à Documenter

Plusieurs à 1

à Documenter

Développer une page ASP

<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>SSL Connexion</title>
</head>

<body>
<%
dim debugg
dim Validate
dim Owner
dim Autority
dim OU
dim UrlBase

debugg="ok"
'si different de ok il n y a pas d affiche des parametres du certificat
UrlBase="http://194.57.124.70"

Validate=request.clientcertificate("validuntil")
'recupere la date d expiration du certificat
Owner=request.clientcertificate("subjectCN")
'recupere le nom et prenom du proprietaire
Autority=CStr(request.clientcertificate("IssuerCN"))
'recupere l autorite qui a emis le certificat
OU=request.clientcertificate("subjectOU")
'recupere l organisme du proprietaire

if debugg="ok" then
Response.Write("Mode debug") %> <br>
Organisme délivrant le certificat : <%Response.write Autority %> <br>
Nom usuel du possesseur : <%Response.write Owner%> <br>
Date de validité du Certificat : <%Response.write Validate%> <br>
Division : <%Response.write OU%> <br>
<%Else
Response.Write("Mode actif") %> <br>
<% End if %>

<%if date > datevalue(validate) then
Response.redirect(UrlBase + "/Script/ssl_expired.htm") %>
<%Else if Autority<>"CNRS-DCAL" then
Response.Redirect(UrlBase + "/Script/ssl_autority.htm")%>
<% Else%>
<%if Owner<>"Herve Chaudret" then
Response.Redirect(UrlBase + "/Script/ssl_owner.htm")
Else
Response.write "Ok Owner"
Response.Redirect(UrlBase + "/Script/ssl_ok.htm")
'c est gagne
End if %>
<%End if%>
<%End if %>

<p>connexion à <a href="../Download/56.exe">téléchargement 10</a> </p>
</body>


</html>

Page Up Updated 20 septembre, 2004 Hervé Chaudret
C.N.R.S.

 -   Home   -  News   -   Conseils   -  Sécurité   -  Mise à jour   -   Liens   -  Accès   -

C.N.R.S.