Crear e Instalar el Certificado
Cuando se crea un servicio que se debe autenticar utilizando certificados digitales para brindar seguridad a nivel de mensaje debemos crear un certificado temporal. Para esta tarea procederemos con la herramienta makecert.exe. Esta herramienta genera certificados del tipo x.509 para propósitos de prueba. En realidad esta herramienta crea una pareja de llaves –> una pública y otra privada – que servirán para las firmas digitales las cuales se van a almacenar en un archivo.
Para desarrollar un servicio que use certificados x.509 para brindar seguridad a nivel de mensaje –> la seguridad se puede aplicar a nivel de mensaje o a nivel de transporte dependiendo del protocolo utilizado –> los certificados tienen que tener un nivel de confianza los cuales tienen que tener un nivel de confianza especificado. Las opciones disponibles son:
- Peer Trust: el certificado se valida de forma directa
- Chain Trust: el certificado se valida contra el emisor del mensaje conocido como “root authority”.
En este tutorial vamos a utilizar Chain Trust. El primer paso es crear un certificado auto firmado que será la autoridad raíz; este certificado será almacenado en el almacén de autoridades raíz de certificación de confianza. En WCF se utilizará posteriormente para crear un certificado desde el certificado autofirmado raíz y que se instalará en el almacén de la máquina local.
Crear el Certificado Raíz
El primer paso para crear un certificado raíz que se va a utilizar para firmar los certificados que se van a intercambiar entre el servicio WCF y el cliente. Para esto utilizamos el “command prompt” de Visual Studio y procedemos con la siguiente instrucción:
En este caso el parámetro –n indica el nombre del CA, –r indica que el certificado va a ser autofirmado y por último –sv nos indica que el archivo contiene la llave privada del certificado.
Cuando ejecutamos este comando aparece la pantalla para crear el password de la llave privada.
Luego nos va a pedir el password de nuevo con el fin de poder acceder la llave privada del archivo pvk para generar el .cer que es el que contiene la llave pública.
Podemos verificar que los certificados están creados en el directorio donde nos ubicamos para crearlos utilizando el Windows Explorer
Instalar el certificado
Ahora procedemos a instalar el certificado en la locación “Trusted Root Certification Authorities” lo cual nos indica que todos los certificados firmados por esta autoridad serán de confianza tanto para el cliente como para el servidor. [ Este ejemplo corre en una sola máquina, si se desea tener un cliente en una máquina virtual o vía red, se debe instalar el certificado también en la máquina cliente.
Para levar a cabo esta tarea procedemos a correr la consola de administración utilizando el comando ejecutar – Windows + R – y procedemos a escribir mmc y le damos enter.
Tenemos que agregar el complemento – snap – para poder agregar el certificado, para esto seleccionamos archivo y agregar o quitar complemento…
Seguidamente agregamos el complemento de certificados tal y como se ve en la siguiente pantalla.
Cuando arranca el wizard, seleccionamos cuenta de equipo para que el certificado este disponible para todos los usuarios.
Seleccionamos el equipo local como administrador del complemento y luego finalizamos el wizard..
Y finalizamos el wizard. La pantalla del MMC debe verse ahora así:
Expandir el folder de Certificados y seleccionar el folder de Entidades de certificación raíz de confianza –> vaya traducción.
Ahí le damos botón derecho y procedemos a seleccionar la opción “todas las tareas/importar”.
El wizard inicia con la siguiente pantalla en la cual seleccionamos siguiente
Buscamos el archivo .cert que acabamos de generar y lo agregamos
En el siguiente paso aceptamos los valores por defecto.
En la última pantalla revisamos los valores del wizard y lo finalizamos
El certificado esta instalado en el almacén de certificados de confianza de la raíz. Para verlo procedemos a expandir el folder de certificados en la consola y los buscamos por el nombre.
Crear e instalar el certificado temporal para el uso del servicio WCF
Ahora procedemos a crear e instalar el certificado en la máquina del servidor. Para esto procedemos a movernos a la ubicación del certificado raíz en la máquina del servidor. Una vez en la ubicación procedemos con el siguiente comando desde el “prompt de Visual Studio”.
Este comando nos permite crear el certificado e instalarlo en el store My. El certificado se llama DRMCert.cer y esta creado a partir del certificado emitido en el paso anterior RootDRM. Al estar utilizando la misma máquina tanto para el servidor como para el cliente el mismo store y el mismo proceso nos sirve para interactuar con el certificado. Si estuviéramos trabajando con máquinas separadas, habría que copiar el certificado y aplicar el mismo comando del lado del cliente de prueba.
Si vamos a la consola consola de administración, el certificado recién creado deberá aparecer en el almacén de equipo local, dentro del folder certificados de los certificados personales.
En el siguiente post iniciaremos el trabajo con el servicio WCF y su respectivo cliente.
3 comentarios:
probandolo...
tegouthehay un error...el ejemplo arranca creando un certificado llamado rootCATest.cer y despues temina usando otro llamado RootDRM...sigo probando...
Hola, necesitaria que me puedas dar una ayuda con respecto de como crear los certificados para usar en produccion y no en desarrollo.
Saludos Diego.
Publicar un comentario