miércoles, 4 de marzo de 2009

Cerificados en IIS y Apache

Mucho se ha hablado sobre los certificados y su uso y no es un secreto para nadie las ventajas que esto trae sobre todo en la seguridad, pero hay poca documentación practica de su uso yo comparto con uds mi experiencia en aplicaciones web.

Primero que nada deben tener instalado un servidor web sea IIS o Apache y configurarlo para que solo se acceda de modo seguro (entiendase por esto https).

Luego configurar los servidores web para que solo acceda un usuario que tenga certificado, luego de esto podemos saber y definir que usuarios con certificados pueden acceder  a tu aplicacion web y hasta crear una session.

Veamos la variable $_SERVER (arreglo) tiene los datos del certificado haciendo algo como esto los obtenemos todos:

foreach( $_SERVER as $key => $value ) {
   echo "$key --> $value<br>\n";
}

pero no es lo que queremos solamente el nombre, pero este esta en $_SERVER["CERT_SUBJECT"]; imprimiendo esta variable sacamos todos lo datos del certificado cliente, pero si solo queremos el nombre hariamos algo como esto:

$cadena_original = $_SERVER["CERT_SUBJECT"];

$posicion = $posicion = strpos($cadena_original, "CN");

$nombre = substr($cadena_original, $posicion+3);

echo "Hola $nombre";

La primera linea de codigo ya la esplique.
La segunda establece la posicion donde aparece el Comon Name(CN) y mas tarde...
En la linea tres cojemos el nombre y lo guardamos en la variable $nombre luego solo nos queda mostrarlo o...


$_SESSION['login']     = "$nombre";

y asi queda creada la sesion con el CN del certificado de usuario.

Muchas gracias y si no entienden algo comenten sera un gusto responderles.



No hay comentarios: