Cita:
Empezado por xevi
Tengo un certificado de UANATACA que no me funciona, cuando con un certificado de FNMT me funciona perfectamente.
No se que tengo que hacer en este certificado para que me lo admita, si tienes una solución y puedes aportarla, te lo agradecería.
Yo no utilizo Delphi, programo con Harbour y objeto WinHttpRequest.5.1
Solo me limito a decirle el nombre del certificado instalado en el almacén de windows, y no veo en que lugar le tendría de cambiar o poner alguna opción distinta para que me pueda servir un certificado que lleva incluidos distintos certificados.
Gracias.
|
Yo programo en Delphi. Te puedo decir cómo selecciono el certificado necesario, pero es con las librerías de Clever Internet Suite.
El componente TclHTTP, tiene un evento OnGetCertificate que es el que se encarga de leer el certificado:
P. ej.
hServidor.OnGetCertificate := rGetCertificado.hServidorGetCertificate;
Es en ese evento donde se carga el certificado, que como ya he dicho, en UANATACA contiene varios certificados, y normalmente el que necesitamos NO ES EL PRIMERO, y se busca dentro:
Código PHP:
procedure TGetCertificado.hServidorGetCertificate(Sender: TObject;
var ACertificate: TclCertificate; AExtraCerts: TclCertificateList;
var Handled: Boolean);
var Certificados: TclCertificateStore;
i: integer;
begin
Certificados := TclCertificateStore.Create(nil);
Certificados.ImportFromPFX(xrVerifactu.Certificado, xrVerifactu.Password); // Importamos desde PFX.
if Certificados.Items.Count > 0 then
begin
for i := 0 to Certificados.Items.Count -1 do
begin
if Pos(rDatosEmisor.Nif, Certificados.Items[i].Subject) > 0 then // Cuando el Nif del emisor me coincide, ese es el certificado que necesito
begin
ACertificate := Certificados.Items[i];
Handled:=True;
break;
end;
end;
end;
end;
No sé si en Harbour tienes algo parecido para ir "navegando" por los certifidados PFX de UANATACA.
Mucha suerte, por lo visto, estos de UANATACA los utilizan multitud de empresas, no entiendo bien por qué no usan los de la FNMT.