![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Obtener fecha de caducidad del certificado
Buenos días.
Estamos haciendo uso de la dll y nos hemos encontrado la duda de si hay forma de obtener la fecha de caducidad del certificado digital para poder informar al cliente de lo tiene que renovar. De momento hemos optado por la opción de cargar el .pfx junto con el password del certificado sin instalarlo. Gracias de antemano. |
|
#2
|
|||
|
|||
|
Yo lo verifico desde el programa y si tiene menos de 30 días para caducar aviso al iniciar el programa cada vez.
Te adjunto el código pero está en C++, en Delphi no soy capaz de hacerlo, si alguien puede convertirlo. Lo tengo en una función a la que llamo pasándole el archivo en ASCert, la contraseña en ASPass y me devuelve la fecha, luego ya calculo yo el tiempo que le queda para caducar,. En caso de error o que no exista devuelve una cadena vacía. Código:
HANDLE hFile = CreateFileW(ASCert.c_str(), GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == INVALID_HANDLE_VALUE)
return "";
DWORD size = GetFileSize(hFile, NULL);
BYTE* buffer = new BYTE[size];
DWORD bytesRead;
ReadFile(hFile, buffer, size, &bytesRead, NULL);
CloseHandle(hFile);
CRYPT_DATA_BLOB blob;
blob.cbData = size;
blob.pbData = buffer;
HCERTSTORE hStore = PFXImportCertStore(&blob, ASPass.c_str(), PKCS12_NO_PERSIST_KEY);
delete[] buffer;
if(!hStore)
return "";
PCCERT_CONTEXT pCert = CertEnumCertificatesInStore(hStore, NULL);
if(!pCert)
{
CertCloseStore(hStore, 0);
return "";
}
SYSTEMTIME st;
FileTimeToSystemTime(&pCert->pCertInfo->NotAfter, &st);
CertFreeCertificateContext(pCert);
CertCloseStore(hStore, 0);
wchar_t fecha[11];
swprintf(fecha, 11, L"%02d/%02d/%04d", st.wDay, st.wMonth, st.wYear);
return String(fecha);
|
|
#3
|
||||
|
||||
|
Yo utilizo esta función que me devuelve los días que faltan hasta la caducidad y si son 60 o menos envía mensaje al usuario cada vez que entra en la app.
Tenemos la ruta del fichero de certificado p12/pfx y la contraseña del mismo. Si el usuario utiliza un certificado instalado en el sistema tenemos la siguiente función que tambien devuelve los días hasta la caducidad:
Compañero, espero te sirva alguna. Un saludo, Ramiro
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error al obtener certificado de disco 5.2 | seccion_31 | SDK Componente Verifactu para Delphi 7+ - Subforo Errores | 0 | 08-09-2025 07:54:45 |
| Como chequear la fecha de caducidad de mi aplicacion | JoAnCa | Varios | 2 | 11-03-2009 14:52:17 |
| obtener solo la fecha en formato fecha y sin hora | BlueSteel | SQL | 14 | 09-05-2008 16:42:19 |
| FTP con SSL, Obtener el certificado | mercury2005 | Internet | 0 | 27-12-2006 08:48:42 |
|