Requiriendo certificados de cliente para el acceso a Citrix con NetScaler

En este documento, veremos cómo configurar desde el appliance de Citrix NetScaler que sea obligatorio el que los equipos clientes dispongan de un certificado instalado en local (también se podría que lo tuviesen en un pendrive) para que puedan acceder al portal de Citrix, a sus aplicaciones; sin el certificado ni verían el portal corporativo.

Esto es un complemento adicional para securizar aún más nuestros entornos, podremos dar certificados a nuestros usuarios generándolos desde nuestra CA y podremos revocarlos cuando sea necesario, en ese momento sin un certificado válido no podría entrar el usuario al portal web de Citrix, sea un Access Gateway que vaya contra un StoreFront o un Web Interface.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-01-bujarra

Bien, sobre nuestra CA que tengamos ya instalada, deberemos hacer una copia de seguridad, para ello “Certification Authotity” > “All Tasks” > “Back up CA…”

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-02-bujarra

Marcamos que nos exporte al menos la clave privada “Private key and CA certificate” y lo guardamos en un directorio que creemos para tal efecto.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-03-bujarra

Bien, ya en el NS, vamos a “SSL” > “Import PKCS#12”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-04-bujarra

En ‘PKCS12 File Name’ deberemos seleccionar el archivo .p12 que nos haya generado el backup de la CA; ojo con los espacios, sobra decirlo en un NS, ¿no? 😉

Le indicamos un nombre en ‘Output File Name’ y le asignamos la contraseña que pusimos a la hora de hacer el backup de la CA & “OK”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-05-bujarra

Vamos de nuevo a “SSL” > “Manage Certificates/Keys/CSRs” y confirmamos que tenemos dos archivos nuevos, tanto el .p12 cómo el certificado de la CA importado, “Close”.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-06-bujarra

En “SSL” > “SSL Certificates” > “Install…”

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-07-bujarra

Damos un nombre al certificado que vamos a instalar, algo que nos haga referencia a nuestra CA. En ‘Certificate File Name’ y en ‘Private Key File Name’ indicaremos el path del fichero generado cuando importamos el archivo PKCS12. “Install” y confirmamos que no slo ha creado bien.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-08-bujarra

Lo siguiente será dar de alta las CRL (Certificate Revocation List) para poder posteriormente forzar a que se checké si los certificados son o no válidos. Desde “SSL” > “CRL” > “Add…”

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-09-bujarra

Indicamos un ‘CRL Name’ y un fichero, seleccionamos formato DER, seleccionamos el certificado de la CA, marcamos ‘Enable CRL Auto Refresh’ y configuraremos el método de acceso contra la CRL de nuestra entidad emisora de certificados, podremos hacerlo fácilmente mediante HTTP y contra la URL del fichero .crl que obtendremos fácilmente dentro del entorno web de gestión de la CA (los espacios de la URL los podremos introducir con ‘%20’, si es que tenemos) & ‘Port’ al 80 que suele ser lo más normal (ojo también con las reglas de firewall que podamos necesitar, si es que el NS está en la DMZ y la CA en la Red de Servidores). Marcaremos ‘Interval’ a “NOW” para forzar el checkeo y ver si lo introducido es correcto o no. “Create”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-10-bujarra

Y listo! confirmamos que en ‘Validity Status’ tenemos ‘Valid’!

Si en ‘Days to Expire’ tenemos algo distinto a ‘1’,  debemos modificar el intervalo de publicación CRL dentro de nuestra CA. Nos vamos a la Entidad de certificación, botón derecho ‘Certificados revocados’ > Propiedades > en la pestaña ‘Parámetros para la publicación de listas de revocación’, cambiamos el intervalo a 1 día/hora & no hacemos diferenciales. Lo actualizaremos con boton derecho en ‘Certificados revocados’ > ‘Todas las tareas’ > ‘Publicar’.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-11-bujarra

Si es correcto, modificamos el CRL y programamos el checkeo contra la crl al menos que sea diario y antes de la entrada de los empleados, para que todos los certificados revocados al día anterior no tengan validez y les deniegue el acceso.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-12-bujarra

Vale, para requerir en el CAG que previamente el cliente debe tener un certificado de cliente válido, seleccionaremos en “Access Gateway” > “Virtual Servers” > “Open…” nuestro AG.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-13-bujarra

Seleccionaremos el certificado de nuestra CA, pulsamos en “Add” > “as CA” para añadirlo al portal.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-14-bujarra

En el check indicaremos “CRL Mandatory” y configuramos en “SSL Paramet…” que sea obligatorio.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-15-bujarra

Deberemos marcar “Client Authentication” y diremos si el certificado de cliente es ‘Mandatory’ u ‘Optional’, lo normal será exigirlo. “OK”. En principio con el NetScaler ya habremos finalizado. Ojo! si a la hora de finalizar los siguientes pasos, tenemos los certificados bien desplegados y no conseguimos entrar en el portal del CAG, se nos queda la web en blanco y en la URL vemos ‘agesso.jsp’ indicará que bien el Web Interface o el StoreFront no pueden conectarse contra el CAG y devolver la autenticación de los clientes, ya que el CAG está requiriendo certificados y el WI o SF no lo tienen, se podría solucionar rápido duplicando el CAG del NS pero sin requisito de certificado y a este se conectará el WI o SF (modificando su archivo hosts).

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-16-bujarra

Si nuestra CA está en Windows 2003 Standard no podremos usar la modificacion de plantillas de certificados ya que se generan para version Enterprise. Tendríamos que generar los certificados accediendo a la pagina de solicitud de certificados (http://CA_SERVER/certsrv), generar una solicitud avanzada de certificado en nuestra CA, donde en el tipo de plantilla seleccionaremos ‘Usuario’ y el formato de la solicitud será en formato PKCS10, una vez generado, exportaremos el certificado con clave privada y lo renombraremos con el nombre que nos interese para instalarselo al usuario correspondiente.

Si nuestra CA está en Windows 2003 Enterprise o Windows 2008 o superior, en estas versiones la CA sí que aceptaría modificar las  plantillas, por lo que podremos generar nuestras plantillas de certificados al gusto. Así que, abrimos la consola de la Entidad de Certificados > “Certificate Templates” > “Manage”.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-17-bujarra

Duplicaremos la plantilla de “User”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-18-bujarra

Seleccionamos “Windows Server 2003 Enterprise” & “OK”

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-19-bujarra

Lo primero será dar un nombre a la plantilla para que los administradores de Citrix cuando generen los certificados a los usuarios la relacionen de forma correcta. Además de un periodo de validez.

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-20-bujarra

En este caso serán unas plantillas que posteriormente rellenaremos de forma manual, sin integración con DA, así que en la pestaña “Subject Name” indicaremos “Supply in the request” y lo iremos cumplimentando con cada certificado. En la pestaña “Issuance Requirements” o requisitos de emisión, podríamos marcar un check y que cada certificado que se solicite se deba aprobar por el administrador, y no será válido hasta que eso ocurra (desde la mmc de la CA se deberían de aceptar).

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-21-bujarra

Una vez creada la plantilla debemos incorporarla en la CA, para ello, desde “Plantillas de Certificado” > “Nuevo” > “Plantilla de certificado que se va a emitir”.

Netscaler-CAG-Citrix-Access-Gateway-Certificado-22-bujarra

Seleccionamos la plantilla recién creada & “OK”,

 

Solicitando certificados para los usuarios,

Netscaler-CAG-Citrix-Access-Gateway-Certificado-23-bujarra

 

Este sería el apartado que deberíamos repetir tantas veces como usuarios que tengan acceso desde el exterior a la organización, deberemos generar un certificado por usuario, que es lo ideal, pero no obligatorio, ya que al tener clave el usuario no podrá exportarse el certificado o al menos no podrá importárselo en otros equipos sin saberse la contraseña; y si lo revocamos afectamos unicamente a este usuario y no a todos.

Abrimos http://CA_SERVER/certsrv, nos validamos como un administrador, pulsamos en “Request a certificate”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-24-bujarra

“Advanced certificate request”

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-25-bujarra

“Create and submit a request to this CA”,

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-26-bujarra

En “Certificate Template” seleccionamos la plantilla recién generada, y al haber seleccionado que introduciríamos los datos de forma manual, ahora nos tocará cumplimentarlos, indicaremos los datos de cada usuario; recordar selecciona PKCS10 como formato, al menos 2048bits de clave & “Submit”,

 

 

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-27-bujarra

Como confiamos en el sitio, se nos habrá ejecutado el complemento ActiveX que nos permitirá crear e instalar este certificado, pulsamos en “Install this certificate”!

 

Netscaler-CAG-Citrix-Access-Gateway-Certificado-28-bujarra

Nos habrá instalado el certificado en el equipo desde donde lo acabamos de generar, lo normal, será exportarlo (con clave privada & protegido por contraseña!) e instalarselo al usuario en su equipo. Con esto ya hemos forzado a que sin un certificado válido de nuestra CA, no se pueda acceder al portal de Citrix de nuestra organización, sea para acceder a aplicaciones (XenApp) o escritorios (XenDesktop).

Héctor Herrero

Autor del blog Bujarra.com
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!

Últimos Posts de: Héctor Herrero (ver todos)