Información Detallada

Certificados digitales

Para poder acceder, la aplicación cliente debe presentar un certificado de seguridad, que determina quién es el que está accediendo a los WS (autenticación del usuario). Los certificados deben estar asociados a los WS específicos a los que puede acceder (a lo que se denomina "autorización de acceso").

Se dispone de la aplicación web Administrador de Certificados Digitales, que está disponible accediendo con Clave Ciudad al portal de la AGIP.

Generación de certificados

Para generar sus certificados digitales, básicamente, necesita usar el utilitario OpenSSL. Si tiene acceso a un servidor Unix/Linux, seguramente ya lo tiene instalado. Si tiene acceso a equipos Windows, puede bajar openSSL de: http://www.slproweb.com/products/Win32OpenSSL.html Los pasos a seguir son los siguientes, al final encontrará un ejemplo completo con los archivos generados:

PASO 1 - Genere su clave privada (private key) de 2048 bits ejecutando: openssl genrsa -out privada.key 2048 Haga un backup de su clave privada para evitar futuros inconvenientes. Tenga en cuenta que la va a necesitar una vez que obtenga su certificado X.509, el cual no le va a servir de mucho si Ud. no dispone de la clave privada que le corresponde.

PASO 2 - Genere su CSR (Certificate Signing Request) ejecutando: openssl req -new -key privada.key -subj "/C=AR/O=subj_o/CN=subj_cn/serialNumber=CUIT subj_cuit1 subj_cuit2 subj_cuit3" -out pedido.csr Reemplazando: subj_o por el nombre de su empresa. subj_cn por su nombre o server hostname. subj_cuit1 por la CUIT sin guiones de la empresa. subj_cuit2 por la CUIT sin guiones del representante. subj_cuit3 por la CUIT sin guiones del administrador de certificados.

EJ: AGIP:

  • ~/cert $ openssl genrsa -out pruebasWS.key 2048
  • ~/cert $ openssl req -new -key pruebasWS.key -subj "/C=AR/O=NOMBRE PRUEBA/CN=NOMBRE PRUEBA/serialNumber=CUIT 21234567890 21234567890 21234567890" -out CSR-test-21234567890.crt

Herramientas de análisis/depuración

En nuestra experiencia desarrollando y soportando aplicaciones relacionadas con web services y/o networking en general, hemos encontrado que es muy práctico (o casi necesario) disponer de algunas herramientas específicas para el manejo de certificados digitales y criptografía en general, para capturar y analizar el tráfico de red y para probar/depurar web services SOAP.

En este sentido, podemos sugerir las siguientes herramientas, todas gratis, la mayoría disponibles para múltiples sistemas operativos:

  • Para el manejo de certificados digitales y criptografía de clave pública: OpenSSL. Esta herramienta forma parte standard de la mayoría del sistemas operativos Unix/GNU/Linux, en el caso de Windows, se puede obtener una versión binaria en: www.openssl.org
  • Para capturar/analizar tráfico de red en general, un popular “sniffer” es: WireShark. Esta herramienta suele formar parte de muchas distribuciones GNU/Linux, pero también puede obtenerse una versión binaria para Windows en: http://www.wireshark.org/
  • Para capturar/analizar tráfico HTTP en particular, una herramienta más limitada pero más simple de utilizar es: Fiddler. Esta herramienta sólo está disponible para entornos Windows y se puede descargar en: http://www.fiddler2.com/fiddler2/
  • Para probar/depurar web services SOAP, una herramienta que ha probado ser muy útil es soapUI. Esta herramienta puede obtenerse en: http://www.soapui.org/

Todas estas herramientas son de libre disponibilidad y en nuestra experiencia y la de otros usuarios, han probado ser muy útiles, pero no asumimos ninguna responsabilidad sobre su funcionalidad ni estamos en condiciones de dar soporte ni contestar consultas sobre su uso.

Circuito de uso del certificado

Generación

  1. genera CSR
  2. sube CSR, mediante el "Administrador de Certificados"
  3. descarga X509
  4. genera un TRA(Ticket de Requerimiento de Acceso) con el servicio y fechas requeridas
  5. genera un CMS c/X509 + firma privada con el TRA de 4
  6. la respuesta de 5 es un TA (Ticket de Acceso), que se deberá usar para acceder al WS

Otras Referencias