Wednesday, April 30, 2014

¿Por qué no puedo entrar al IDSE utilizando Chrome o Firefox?

Antecedentes

En la empresa para la que trabajo, uno de módulos del ERP que desarrollamos, genera archivos en txt para dar altas y bajas del personal de campo y una de las preguntas más comunes de los encargados de esta actividad es: "¿Por qué no puedo acceder al IDSE utilizando Chrome o Firefox?




Introducción

Dos de los navegadores más utilizados en la actualidad son Google Chrome y Mozilla Firefox, por lo que es habitual que se intente acceder al IDSE utilizando uno de estos.


Solución

Respuesta corta: 

  - Los desarrolladores del IDSE no han actualizado el código para cumplir con los nuevos (desde el 2002) lineamientos de seguridad.

Respuesta larga:

   - Vamos a revisar el código para encontrar el problema.

Dentro de la pagina del IDSE, al dar click en el botón "iniciar sesión", manda a llamar la función de javascript "Sing()", la cual en su sexta línea de código contiene:

var pkcs12 = document.firmaForm.certificado.value;


Esto quiere decir que la variable "pkcs12" contiene el nombre del certificado que seleccionamos en el input "certificado digital".

Hacemos un paréntesis en este punto, para recordar que unos de los pasos para acceder a IDSE con Internet Explorer es habilitar la opción "Incluir el directorio local cuando se suban archivo al servidor". Esto hace que la ruta de nuestro archivo se muestre como (igual que el valor de la variable "pckcs12"):

  - Internet Explorer - "C:\Usuarios\UsuarioA\Desktop\certificadoIMSS.pfx"

Por cuestiones de seguridad Chrome/Firefox no incluyen la ruta completa (me parece bastante razonable), dándole a la variable "pckcs12" el valor de:

 - Firefox - "certificadoIMSS.pfx"
 - Chrome - "C:\fakepath\certificadoIMSS.pfx"

Teniendo en cuenta esto, si tratamos de iniciar sesión nos mostrará el error:

 - "El archivo no existe o se modificó la ruta del archivo. Por favor verifique y actualice la información".

Continuamos con nuestro análisis hasta llegar a la línea 371 de uno de los applets, la cual dice:

FileInputStream localFileInputStream = new FileInputStream(paramFile);

Esta línea trata de obtener los bytes del certificado (paramFile=pckcs12) y debido a que Chrome/Firefox no incluyen la ruta absoluta, devuelve el error antes mencionado (no encuentra el archivo en la computadora del cliente).

Soluciones

Algunas de las soluciones son:

1.- Que los desarrolladores actualicen el código / La mejor opción
* La mejor pero menos probable (por los cambios que implica) es que se actualice la forma en que se realiza el "login" en el sistema IDSE, el sistema debe subir el certificado al servidor o crear un nuevo applet para "login" y así poder seleccionar al archivo desde java (no por javascript).

2.- Instalar el complemento IETab.net en Chrome / Probable
* Este complemento es un emulador de Internet Explorer, que tiene habilitada por default la opción para incluir la ruta absoluta de los archivos.

3.- Seguir utilizando Internet Explorer / No recomendable
* Con todos los problemas de seguridad no es recomendable seguir utilizando este navegador.

4.- Crear el directorio C:\fakepath / Chistoso - No recomendable
* Creando el directorio mencionado y agregando a esa ruta el certificado, Chrome pasará la ruta absoluta utilizando el "fakepath" por lo que el applet encontrará el archivo.

Thursday, November 14, 2013

Adminpaq Error 42501 al ejectuar la terminal en un usuario limitado

Antecedentes


Una pequeña empresa me contactó para apoyarla, entre otras cosas, con la configuración de Adminpaq para que corriera en sesiones con usuarios limitados y la primer palabra que se me vino a la mente al escuchar "Adminpaq" fue "problema".


Introducción

Es ampliamente conocido que lo primero que se debe hacer es darle permisos a los usuarios en el registro de windows para la entrada "Computación en Acción" y sus subentradas, esto es en:
  • HKEY_LOCAL_MACHINE -> SOFTWARE -> Computación en Acción, SA CV
Después de asignar los permisos mencionados intenté entrar y "cuack" error 42501

Leyendo el buscador de conocimientos en la pagina oficial me encontré con que:
  • DAR PERMISOS AL USUARIO DE WINDOWS EN EL REGEDIT O INGRESAR CON UN USUARIO CON DERECHOS DE ADMINISTRADOR
¿Dar permisos al usuario de windows en el regedit?, ¿A todo el registro ó a cuales entradas? ... ¿O ingresar con un usuario con derechos de administrador? mmmm ¿Y donde esta la solución real a mi problema?

Solución

Después revisar los permisos en el registro, firewall, variables de entorno, encontré la solución en: dar permisos al usuario en la carpeta de instalación "Adminpaq".

Finalmente, entrando con un usuario administrador, nos vamos a:
  1. C -> Archivos de Programa -> Compacw 
  2. Click con el botón derecho en "Adminpaq" -> propiedades -> pestaña seguridad
  3. Buscamos/agregamos y seleccionamos a "Usuarios" -> click en "Control Total"
  4. Aceptar
Listo!, podemos entrar a Adminpaq con un usuario limitado.



Wednesday, October 9, 2013

Comprar una laptop Dell por internet

Antecedentes


Decidí adquirir una laptop para empezar a trabajar en varios proyectos personales, pienso que el primer paso para seleccionar de mejor forma el equipo, con el que vas a trabajar por varios años, es leer reseñas en internet de los mejores portatiles en cuestión precio/rendimiento.

Por lo que todo (en ese momento) apuntó a una Ultrabook Dell 14z, no es una Alienware pero para las funciones que tengo pensadas realizas está bastante cumplidora.

Hace más de 4 años tuve la oportunidad de adquirir para una empresa una Dell XPS 13, la cual me gustó bastante pero tardó más del mes en llegar al domicilio. Pensé que esto pudiera haber cambiado dramáticamente y que Dell iba a tener una bodega en México para solo realizar envío nacional en cuanto se confirmara la compra (para equipos no configurables a nivel hardware) ... esto era solo un "tal vez".

Proceso de compra

Después de elegir el modelo en el sitio Dell, el cual no era configurable a nivel hardware, procedí a realizar el pago con tarjeta de crédito y llegar hasta el punto de finalizar la compra sin mayor problemas, concluyendo con un correo de "confirmación de orden" por Dell el 18/Sep/2013.

La intriga sobre el status de mi equipo me llevó a consultar cada 2 hrs mi cuenta en la pagina Dell, está sin presentar algún cambio hasta el 20/Sep/2013, fecha en la que recibí dos correos; uno de "mi ejecutivo" y otro de "confirmación de compra" que fue cuando me dí cuenta que apenas se había realizado el cargo a la tarjeta de crédito.

Ese último correo también trae un link a la plataforma de Dell para monitorear el proceso de tu pedido, dividido en:
  1. Procesamiento de pedidos.
  2. Previo a la producción.
  3. En producción.
  4. Enviado.

Este correo también fue el inicio de una laaaaarga espera y angustia de saber "¿Cuando tendré el equipo en mis manos?" y fue hasta el 1/Oct/2013 cuando apareció en la plataforma el nombre del transportista "KUEHNE NAGEL" y un número de guía para rastrear el envío. El sistema de esta compañia mostraba que la guia no era correcta por un lapso de 3 días, hasta que por fin el 4/Oct/2013 desplegó información acerca del envío, la cual decía que la "fecha de estimada" de entrega sería el 9/Oct/2013.

Traté de mantener la calma y no consultar la pagina de Dell/Kuehne+Nagel cada hora y fue el 7/Oct/2013 cuando recibí otro correo de Dell informandome mi número de guía el cual podría rastrear por Estafeta, si, por Estafeta y fue cuando me di cuenta que Kuehne+Nagel entrega en México y Estafeta distribuye a su destino final.

Así que ahora con Estafeta como tercera compañía encargada de entregar mi pedido, tuve cierta tranquilidad de saber que por lo menos "esta fluyendo" y con el tipo de envío "garantizado al tercer día hábil", supe que mi equipo estaría llegando a mis manos el 8 o 9/Oct/2013.

"Dicho y hecho", el miercoles 9/Oct/2013 recibí mi nuevo equipo de trabajo.

En resumen

Como lo mencioné en el tercer párrafo; pensé que el tiempo de entrega había mejorado con el paso de los años y sobre todo para los equipos no configurables a nivel hardware pero desafortunadamente no fue así:

  • Tiempo de entrega: 22 días totales o 16 días hábiles.


Friday, July 12, 2013

Redmine no envía notificaciones por correo después de actualización - An error occurred while sending mail (hostname does not match the server certificate)


Antecedentes

Decidimos actualizar nuestro administrador de proyectos web alias Redmine, de la versión 2.0.3 a 2.3.1 pero al tenerla funcionando nos dimos cuenta que las notificaciones vía email no estaban funcionando.

Introducción

Como lo mencioné, Redmine es un administrador de proyectos web, el cual esta desarrollado con el framework Ruby on Rails y lo tenemos configurado para utilizar el motor de base de datos MySQL para el almacenamiento de información.

Después de haber actualizado Ruby con sus respectivas gemas y cumplir con los requisitos para correr la versión 2.3.x de Redmine, el problema con el que nos enfrentamos es que Redmine no enviaba las notificaciones de creación/cambios de proyectos/actividades/usuarios etc.

Nota

Cabe mencionar que dentro de los logs el sistema no registrada el error conexión con el servidor de correos.

La clave es el error que aparece en la sección "enviar correo de prueba" y dice: "An error occurred while sending mail (hostname does not match the server certificate".

Solución

Action mailer cuenta con un parámetro para que pueda establecer conexión con el servidor en caso de que tenga problemas de nombre en el certificado.

La solución es tan sencilla como agregar el parametro "enable_starttls_auto: false", por lo que el archivo "configuration.yml" debe lucir como:


  • email_delivery:
    • delivery_method: :smtp
    • smtp_settings:
      • address: "smtp.example.com"
      • port: numero_puerto
      • enable_starttls_auto: false
      • domain: "example.com"
      • authentication: :"metodo sin comillas"
      • username: "username"
      • password: "contraseña"



Fuentes

  1. Redmine
  2. Ruby on Rails - Action mailer

Windows 8 - Disco 100%

Antecedentes

Instalé Windows 8 Pro x64 para probar el nuevo y "mejorado" producto de Microsoft y con esto dejar a un lado el "me han contado", "he leído" que "...". En fin, el primer problema que se presentó fue lo extremadamente lento que trabajaba y aún cuando solo estaba ejecutando 3 ó 4 aplicaciones ligeras.

Primeros Pasos

Como es obvio, mi primera idea fue abrir el "Administrador de tareas" y así poder ver cual estaba consumiendo recursos en manera desproporcionada. Por lo que:

  • CPU - 15%
  • Memoria - 69%
  • Disco - 100%
  • Red - 0%
¿Disco 100%? ... Bueno, sorprendentemente después de cerrar aplicaciones, revisar controladores, reiniciar la computadora, aplicar actualizaciones de windows y revisar el "Visor de sucesos" no encontré explicación alguna; por lo que decidí investigar en los foros pero desafortunadamente ninguna solución ayudó en mi caso.

Después de varios días de investigación y pruebas, llegué al punto de leer las "novedosas funciones" de Windows 8 y fue en donde encontré el punto clave: "Mantenimiento automático".

Según como lo describe Microsoft, el mantenimiento automático corre tareas como: actualizaciones de antivirus y escaneo, actualizaciones de Windows, desfragmentación de disco, diagnostico del sistema, etc. y estas mantenimiento automático se corre solo cuando la computadora esta en reposo y se detiene cuando entra en actividad.

Debido a la desconfianza que se ha ganado con creces Microsoft, decidí probar deshabilitando estas tareas mantenimiento y oh sorpresa!, mi disco no ha vuelto a estar al 100% (sin motivo alguno).

Solución

Al final de cuentas la solución que me funcionó fue:

  1. Deshabilitar Windows Update
  2. Deshabilitar tareas automáticas.


Para deshabilitar las tareas automáticas, debes ingresar a:
  • Panel de control -> Herramientas administrativas -> Tareas programadas.
Dentro de Tareas programas nos vamos a:
  • Librería de tareas programadas -> Microsoft -> Windows -> TareasProgramadas
Damos click con el botón derecho y marcamos "deshabilitar".


Listo!, no mas disco al 100%!

Actualización

Mi equipo mejoró en redimiendo al aplicar estos dos cambios, ahora el problema con el que me enfrenté es que el crear/mover archivos, el disco volvía a elevarse al 100% y la culpa ahora era de "Windows Search". Esta "fabulosa" herramienta que debe indexar los archivos, pues bien, para mi era solo perdida de tiempo.

Para deshabilitar el servicio de Windows Search:

  • Presionamos "Windows + R" -> escribimos "services.msc" -> OK
  • Buscamos "Windows Search" -> click con el botón derecho -> "propiedades" -> "modo de arranque" -> "deshabilitado"
  • En la sección de "estado del servicio" damos click en "Stop"
Con esto mi equipo mejoró en rendimiento considerablemente.

Wednesday, May 29, 2013

Olvido de contraseña usuario SA Contpaqi


Antecedentes

Un amigo me habló sumamente preocupado, argumentando que había restaurado su computadora a los valores de fabrica pero seleccionando la opción "guardar información del usuario", lo que no tomó en cuenta es que windows borra los programas instalados.

La preocupación principal era que utiliza las aplicaciones de computación en acción (Contpaqi, Contpaqi facturación electrónica y Nomipaqi) y lo peor, no contaba con respaldos.

Introducción

- La restauración de windows 


Al restaurar el sistema (habiendo seleccionado la opción de conservar los archivos del usuario), windows crea un directorio de nombre "windows.old" en el cual almacena los directorios como:

    • Archivos de programa
    • Usuarios
    • Windows
Y adicional a esta respeta los directorios que se crearon en la unidad de instalación.

Requisitos
  1. Instalar la misma versión que se utilizaba de las aplicaciones a restaurar, como:
    • Contpaqi facturación electrónica.
    • SQL Server 20XX Express
    • Contpaqi
    • Nomipaqi
    2.   Detener el servicio SQL Server (COMPAC)
    • SQL Server Configuration Manager -> "Servicios de SQL Server" -> SQL Server (COMPAC) -> Detener.
Nota

Para restaurar Contpaqi factura electrónica es sumamente sencillo, ya que toda la información se almacena en el directorio x:\CompacW\empresas.

Solución

Es muy sabido que Contpaqi y Nomipaqi utilizan bases de datos SQL, siendo "SQL Server Express" la versión más común. Del mismo modo, la restauración es tan sencilla (debido a que es una instancia que se encuentra Offline), como copiar el directorio de la instancia almacenada en "x:\windows.old\Program Files" a nuestra nueva ruta de instalación de SQL Server Express. Las cuales están en "x:\Program Files\Microsoft SQL Server\MSSQLXX.COMPAC".

Puedes consultar más información en este link - ubicación de archivos y nombre de instancias.

Uno de los problemas más fuertes al restaurar una instancia es recordar la contraseña del usuario SA (system administrator) que se encuentra en la "master database".

Lo más sencillo es reemplazar la contraseña siguiendo estos pasos:

  1. Iniciamos el servicio "SQL Server (COMPAC)".
  2. Abrimos la consola de windows.
  3. Escribimos los siguientes comandos (presionamos enter en cada línea): 
    • sqlcmd -S nombreservidor\COMPAC
    • ALTER LOGIN sa WITH PASSWORD = 'nueva_contraseña';
    • GO
    • EXIT



Nota 

También se puede utilizar "sp_password", aunque con la nota que Microsoft dice que este será quitado en futuras versiónes (posteriores a SQL Server 2012).

Probamos la conexión

Una vez que cambiamos la contraseña vamos a intentamos conectarnos via la misma consola de windows, con los siguientes comandos:

  • osql -U sa -S nombreservidor\COMPAC
  • ingresa contraseña
  • En caso de conectarnos con exito escribrimos exit.
Listo!, con estos pequeños pasos hemos cambiamos la contraseña del sa.

Links



Tuesday, May 21, 2013

SUA - ERROR "13" EN TIEMPO DE EJECUCIÓN: NO COINCIDEN LOS TIPOS


Antecedentes

Un día me habló muy angustiada una persona de RRHH de la empresa para la que trabajo, comentándome que el SUA le daba un error al calcular un pago extemporáneo. El error era el siguiente: "error '13' en tiempo de ejecución: no coinciden los tipos".
Después de hacerle varías preguntas me dijo que ya había hablado por teléfono al soporte técnico del IMSS, en donde le pidieron hacer lo siguiente:

 - Verificar que la computadora este configurada con los estándares y formatos de acuerdo a como fue programado el SUA. 

Por lo general basta con fijar la computadora con el estándar "Español (México)", tal y como se detalla en las preguntas frecuentes del SUA.

A nosotros no nos funcionó esta solución y la respuesta de soporte técnico fue: "mándanos un correo con el error y datos generales de tu empresa, de 24 a 48 hrs tendrás respuesta".

Solución (SUA v3.4.0)

Me di cuenta que al momento de estar generando el pago, el sistema valida los números de crédito infonavit, el cual se compone de 9 dígitos + 1 número verificador.

Primeros pasos

  1. Respaldar SUA.
    • Como normal general, antes que nada debemos tener respaldo de cualquier archivo/fichero que   vayamos a modificar.

Paso a paso 

Este es el método más sencillo para corregir el error:

  1. Obtener un listado de las personas con crédito infonavit.
    • Esto se realiza en: SUA -> Reportes -> Análisis de información -> "Verificación de acreditados" -> seleccionamos el bimestre del mes que nos muestra el error.
  2. Buscamos los empleados con número de crédito incorrecto.
  3. Corregimos los movimientos de los empleados.
    • SUA -> Trabajadores -> buscamos al empleado -> eliminamos movimientos y los capturamos de nuevo.

El método que utilicé es el siguiente:
  1. Abrir la base de datos del SUA en Microsoft Access (obvio tiene contraseña para mayor "seguridad").
  2. Buscar en la tabla "Movtos" los registros en los que el campo "Num_Cre" sea menor a 10 caracteres.
    • Yo utilicé este query: SELECT * FROM Movtos WHERE LEN(Num_Cre) < 10;
    • Cuidado con los múltiples registros patronales.
  3. Le mandamos a RRHH el resultado para que nos valide los números de crédito.
  4. Actualizamos la información en Access. 

Listo!, Calculamos de nuevo y esta vez no debe presentar error.