Este módulo está desarrollado para que sea mas fácil la generación de certificados digitales para el transporte cifrado de la información entre el navegador web del usuario y el servidor forseti. Para entender lo que hace este módulo, es muy recomendable leer la página de ayuda del menú Implantación/Configuración/JSSE de esta documentación. Aquí se explica solo la interacción con el módulo y no se profundiza en lo que es JSSE como en esta otra sección. En este módulo vamos a administrar los certificados auto-firmados así como el servicio tomcat para proveer seguridad a nuestro servidor. Los paneles izquierdo, inferior y derecho de este módulo aparecen vacíos porque no se utilizan.El panel de cuerpo principal de este módulo no contiene columnas, simplemente muestra los archivos de almacén de certificados que hemos generado a través de este mismo módulo. Estos archivos se guardan en el directorio bin de nuestra instalación forseti.
Procesos del módulo de Control JSSE
En este módulo intervienen los procesos primarios de consultas de certificado, certificado auto-firmado, instalación del certificado y agregado a jssecacerts.
Consultar certificado.
Permite ver las propiedades del certificado del archivo de almacén seleccionado de la lista. Este proceso solicita primero la contraseña del almacén del certificado y en caso de ser correcta, mostrará la información del certificado auto-firmado. El formulario para la consulta posee el siguiente objeto:
Certificado auto-firmado. Permite generar un nuevo certificado auto-firmado. El formulario para la generación contiene los siguientes objetos: - Nombre del archivo, Es el nombre que tendrá el almacén del certificado. Todos los nombres comienzan con forsetikeystoreXYZ para identificar que este es un almacén, y donde XYZ puede ser algo significativo para identificar este archivo en especial.
- Alias, Este puede ser forseti o cualquier otro alias. Este se utiliza para identificar un certificado dentro de un almacén. Como este proceso no genera múltiples certificados por almacén, es fácil recordar el alias.
- Nombre común, Es el nombre del emisor del certificado, debe ser alguno de los siguientes: El dominio o la IP del servidor, por ejemplo "empresa.com.mx" o "54.209.221.45". Este nombre es muy importante que coincida con alguno de los nombres alternativos si es que se va a utilizar el servicio JPacConn para sellar CFDIs del mismo servidor (por medio de localhost o 127.0.0.1) o de servidores forseti externos por medio de (empresa.com.mx o 54.209.221.45).
- Unidad organizativa, Puede ser el nombre del departamento de tu empresa encargada de generar certificados.
- Organización, Puede ser el nombre de tu empresa.
- Localidad, La localidad o entidad federativa.
- Estado, El estado o provincia.
- Código de País, Para México puede ser mx.
- Nombres alternativos, Estos deben estar antepuestos por las siglas dns: o ip: separados por coma. Un ejemplo de una linea de nombres alternativos según el nombre común anterior es: dns:empresa.com.mx,ip:54.209.221.45,ip:127.0.0.1,dns:localhost
- Contraseña, Es la contraseña del almacén y del certificado.
- Confirmación de contraseña, Su confirmación.
NOTA: Por medio de éste módulo los certificados se generan con una vigencia de tres meses a partir del momento de generación. Si se desea aumentar la vigencia de los certificados así como hacer otros cambios, entonces se deberán generar manualmente con el comando keytool.
Instalar certificado. Permite instalar en tomcat, el certificado del almacén seleccionado de la lista. El formulario para la instalación del certificado contiene los siguientes objetos:
- Contraseña, Es la contraseña del almacén y el certificado generado.
- Puerto, Este puede ser 8443 o 443. Es el puerto donde deseas que escuche el servicio web tomcat por peticiones cifradas. Para que se pueda instalar sobre el puerto 443 ( Puerto natural reconocido por el protocolo https ), tomcat debe estar previamente configurado, de lo contrario, solo se podrá instalar en el puerto 8443 ( Puerto por defecto de tomcat para escuchar por peticiones cifradas ). Las diferencias en este tema son tratadas en la página Implantación/Configuración/Configurando Forseti de esta documentación.
NOTA MUY IMPORTANTE: Para que esto sea posible, el mismo proceso tomcat debe tener acceso a modificar el archivo de configuración server.xml de la misma instalación tomcat. Los servidores utilizados en una red de área local o en instalaciones en la nube para usos privados ( donde el servidor no usa un domino como empresa.com.mx ) y donde forseti sea la única aplicación que contendrá tomcat, podrían enfrentar los riesgos que esto implica, sin embargo, en instalaciones públicas que dan servicio de out-sourcing se vuelve indispensable, ética y físicamente, impedir el acceso al archivo server.xml e instalar manualmente certificados comprados a una autoridad certificadora ( CA ) como VerySign.
Agregar a jssecacerts.
El formulario para el registro del certificado contiene los siguientes objetos:
- Contraseña, Es la contraseña del almacén jssecacerts de JSSE que contiene los certificados de confianza. Si no sabes cual es, intenta con "changeit" que es la contraseña por defecto, pero cámbiala al finalizar el registro ( verifica la página de ayuda del menú Implantación/Configuración/JSSE de esta documentación. )
- Puerto, Este puede ser 8443 o 443. Es el puerto donde deseas que escuche el servicio JPacConn.
El servicio JPacConn es el encargado de gestionar el sellado de Comprobantes Fiscales Digitales por Internet, mejor conocidos como CFDIs. El proceso de sellar un documento involucra los siguientes pasos:
- Se genera el CFD desde el módulo de Ventas, Nómina o Traspasos de almacén (Carta Porte). Este proceso arma el archivo inicial xml con su cadena original y sella el comprobante.
- Se conecta al servidor donde escucha el servicio JPacConn.
- Se envía al servicio JPacConn el CFD y otros elementos ( ID de servidor, Contraseña, etc. ).
- Este servicio recibe la petición, y verifica el ID de servidor, la contraseña etc.
- Si no pasa la verificación, registra, regresa un archivo XML de error al servidor que le habló, se cierra la conexión, y finalmente el módulo de Ventas, Nómina o Traspasos también registra el error.
- De lo contrario, manda el CFD recibido al PAC ( Por ahora solo soporta el PAC Edicom porque distribuye su API como software libre, sin embargo se están desarrollando APIs para soportar otros PACs ), y espera para recibir el CFD timbrado, osea el CFDI final.
- Registra el sello, regresa una copia del CFDI al servidor que le habló, y se cierra la conexión.
- Finalmente, el módulo de Ventas, Nomina o Traspasos genera el archivo PDF del CFDI recibido y guarda ambos archivos para poder ser descargados.
Todos los servidores forseti cuentan con el servicio JPacConn, y si se tiene una cuenta dada de alta con el PAC, entonces este servidor forseti puede utilizarlo para sellar comprobantes mandados desde los módulos de Ventas, Nóminas y Traspasos, no solo desde este mismo servidor, sino también, mandados desde los módulos de Ventas, Nóminas y Traspasos de servidores forseti externos que no tengan una cuenta con el PAC. El servicio JPacConn escucha por peticiones https exclusivamente, suponiendo que un servidor está instalado en la nube sobre la IP 54.209.221.45, la conexión del segundo paso debe ser realizada de dos maneras distintas según sea el caso: 1) Conexión al servicio desde el mismo servidor, Esta debe ser realizada por medio de https://localhost o con la dirección interna https://127.0.0.1, asignando el puerto explícitamente ya sea 8443 o 443 si se configuró tomcat para soportarlo.
2) Conexión al servicio desde un servidor externo, Esta debe ser realizada por medio de https://54.209.221.45, asignando el puerto explícitamente ya sea 8443 o 443 si se configuró tomcat para soportarlo, en el servidor que brinda el servicio. Cualquiera de ambas conexiones solo involucran a las aplicaciones ( conexión desde una máquina virtual de java a otra ) y no al navegador. Por lo tanto, esta situación requiere que el certificado del servidor que brinda el servicio, sea registrado en un archivo de almacén llamado jssecacerts para que pueda ser reconocido como confiable, por la aplicación cliente ( la que realiza la petición ), y este proceso se encarga de esta tarea. NOTA: Teóricamente, no será necesario el registro si el servidor está utilizando un certificado comprado a una autoridad certificadora ( CA ).
Errores comunes en este módulo PRECAUCION: La variable TOMCAT (ruta de instalación de tomcat) no está definida... No se puede realizar este proceso. Es necesario que se configure la ruta de instalación de TOMCAT. Para esto, es necesario hacerlo en las propiedades del servidor del menú administración / servidor y empresas.
PRECAUCION: La variable JVM (ruta de instalación del OpenJDK o Java JDK) no está definida... No se puede realizar este proceso. Es necesario que se configure la ruta de instalación de la Máquina Virtual de Java. Para esto, es necesario hacerlo en las propiedades del servidor del menú administración / servidor y empresas.
|