Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   HTTPRIO elegir el certificado digital mediante evento NeedClientCertificate (https://www.clubdelphi.com/foros/showthread.php?t=97118)

CarlosR 10-12-2024 19:11:42

HTTPRIO elegir el certificado digital mediante evento NeedClientCertificate
 
Tengo una duda, no sé si es el lugar adecuado para exponerla, de no ser así pido discullpas anticipadas.
Estoy usando HTTPRIO e intento elegir el certificado digital mediante el evento NeedClientCertificate.
En un formulario va bien, pero cuando lo intento ejecutar en un servicio de windows el evento no es llamado por el servicio.
Después de darle muchas vueltas intuyo que no funciona el evento en un servicio de windows.
¿ Alguien tiene información al respecto ?
Gracias.

Garada 11-12-2024 08:51:10

Si lo pruebas fuera de un servicio usa el almacén de certificados del usuario pero como servicio el usuario será System.
No sé si el usuario System usa su propio almacén o el de la máquina, seguramente su propio almacén.

Prueba a añadir el certificado con la utilidad psexec que te deja abrir aplicaciones como System
https://learn.microsoft.com/es-es/sy...wnloads/psexec

Ejecuta esto como administrador
Código:

psexec -s -i c:\windows\system32\mmc.exe c:\windows\system32\certmgr.msc

CarlosR 11-12-2024 11:11:20

NO ha funcionado. Volví a instalar el certificado manualmente como system y también lo hice con lal herramienta que me recomendó. El certificado siempre lo veo como perteneciente a usuario actual.

Tampoco tengo claro que el problema sea la carga del certificado. El evento NeedClientCertificate del objeto HTTPRIO no tengo constancia de que sea llamado. He puesto la creación de un archivo txt externo para verificar que entra al evento y nunca genera tal archivo. Esto podría deberse también a que si no hay ningún certificado instalado donde él lo busca ni siquiera entre en el evento.
Estoy algo perdido la verdad.
Saludos.

Garada 11-12-2024 12:09:50

Bueno, si te consta que no lanza el evento mejor haces debug que el problema puede ser antes.

https://docwiki.embarcadero.com/RADS...e_Applications

CarlosR 11-12-2024 13:01:08

Tema solucionado.
En el caso de no lanzar el evento, era problema mio. A veces no se ve el bosque por estar demasiado cerca. (Efecto túnel)
Cambiar una fecha finalizacion de certificado comparada con Now() y darle la vuelta al Mayor que... por eso no llegaba a generar el archivo txt.
En el caso de la instalación del certificado tenía usted razón. Hay que instalarlo en modo LOCALMACHINE y no en modo USERACTUAL.
No sé si habría funcionado solo con sus indicaciones anteriores. Descargué una utilidad de Microsoft llamada WinHttpCertCfg.exe que da mucho mas juego.
Así que ya no sé si hubiera funcionado solo con las indicaciones que usted me proporcionó. Actualmente funciona y correrctamente el servicio.
Gracias.
Un saludo.


La franja horaria es GMT +2. Ahora son las 13:19:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi