• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Certificados SSL De Clientes Como Sistema De Autenticación WebDebian Lenny.A menudo creamos aplicaciones web con un
backend 
de gestión que, porser también web,
exponemos
públicamente a cualquiera que consigaaveriguar la URL. Habitualmente estos sistemas son de acceso restringido,sólo un pequeño grupo de usuarios lo utiliza.En escenarios donde tenemos un gran numero de usuarios y se necesita
autentificación
, se puede utilizar un mecanismo de certificados queaporten mayor seguridad al sistema, de esta manera solo aquellos usuariosque tengan el certificado en cuestión tendrán acceso a la máquina.Veremos como permitir el acceso a nuestra aplicación a aquellos usuariosque dispongan de un certificado que previamente les habremos enviadomientras que si no lo tienen no podn acceder de ningún modo. Estemétodo se puede combinar, además, con el tradicional usuario/clave paradar mayor seguridad. Podremos incluso verificar que el nombre de usuarioque se intenta utilizar se corresponde con el certificado de usuario que lehemos enviado y no intenta autentificarse con otro.Los navegadores web reconocen, por defecto, una serie de
autoridadescertificadoras
comoVerisigno Thawte, aunque hay muchas más. Puedes verlas todas en las opciones de tu navegador. Pero, ¿qué es realmente loque hace una
Autoridad Certificadora
? Firmar. Firma tu certificado SSLasegurando que si nos pertenece a nosotros y a nuestro dominio. Cuandoun cliente accede a tu dominio y descarga el certificado SSL, busca dentrode sus certificados de
CA
’s si hay alguno que lo haya firmado. Si loencuentra, acepta tu certificado y no ocurre nada especial, pero si noencuentra la
CA
lanza un aviso indicando que no se reconoce la autoridadque lo firma. Esto no quiere decir que el certificado
no sea válido
, lo únicoque ocurre es que
no sabe quien lo firma
. Esto significa, por tanto, que túmismo puedes ser
tu propia autoridad certificadora
y firmar tuscertificados, funcionarán perfectamente y cumplirá el objetivo de asegurarlas comunicaciones cliente-servidor.Nota: Antes de empezar debemos tener configurado correctamente nuestroDNS para nuestro caso utilizaremos el dominio “torres.com”.
 
1-
instalamos el soporte para ssl#apt-get install openssl
2-Creamos un directorio central para almacenar todo lo que tenga que vercon la entidad certificadora#mkdir /etc/ssl/CA3-Generamos el archivo openssl.cnf con el que trabajara nuestra entidad./etc/ssl/CA#nano openssl.cnf y le agregamos las siguientes lineas
#*************************************************************************************# www.linuxtotal.com.mx# sergio.gonzalez.duran@gmail.com## Archivo de configuracion para openssl## ***** openssl.cnf ******dir = . # variable que establece el directorio detrabajo # seccion que permite convertirnos en una CA# solo se hace referncia a otra sección CA_default[ ca ]default_ca = CA_default[ CA_default ]serial = $dir/serial # archivo que guarda elsiguiente número de serie
 
database = $dir/index.txt # archvio que guarda la bd decertificadosnew_certs_dir = $dir/certificados # dir que guarda loscertificados generadoscertificate = $dir/certificadoCA.pem # nombre del archivo delcertificado raízprivate_key = $dir/privado/cakey.pem # llave privada delcertificado raízdefault_md = md5 # algoritmo de dispersiónusadopreserve = no # Indica si se preserva o noel orden de los# campos del DN cuando sepasa a los certs.nameopt = default_ca # esta opcion y la siguientepermiten mostrar# detalles del certificadocertopt = default_capolicy = policy_match # indica el nombre de laseccion# donde se especifica quecampos son# obligatorios, opcionales ycuales deben ser# iguales al certificadoraíz# seccion de politicas para la emision de certificados[ policy_match ]countryName = match # match, obligatoriostateOrProvinceName = matchorganizationName = matchorganizationalUnitName = optional # optional, campoopcionalcommonName = supplied # supplied, debe estaren la peticiónemailAddress = optional# seccion que indica como los certificados deben ser creados[ req ]default_bits = 1024 # tamaño de la llave, si no seindica 512default_keyfile = key.pem # nombre de la llave privadadefault_md = md5 # algoritmo de dispersión autilizarstring_mask = nombstr # caracteres permitidos en lamascara de la llavedistinguished_name = req_distinguished_name # seccion para elnombre distinguido (DN)req_extensions = v3_req # seccion con mas extensionesque se añaden a la# peticion del certificado# seccion del nombre distinguido, el valor es el prompt que se veraen pantalla.# datos del propietario del certificado.# esta seccion define el contenido de datos de id que elcertificado llevara.[ req_distinguished_name ]0.organizationName = Nombre de la organizacion0.organizationName_default = Torres, S.A.organizationalUnitName = Departamento o divisionemailAddress = Correo electronico
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...