Buenos días.
Debo acceder a una Webservice con SSL y tengo un problema en el momento en el que envío una petición, pues me da el siguiente error:
"raised exception class ESOAPHTTPException with message "Error en el soporte de canal seguro - URL :htpps://lexnetpruebas.justicia.es"
En el componente THTTPRIO tengo puesto el siguiente codigo en el eveto onBeforePost del HTTPWebNode:
Código Delphi
[-]procedure TForm1.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
Data: Pointer);
var
Store: IStore;
Certs: iCertificates;
Cert: ICertificate2;
CertContext: ICertContext;
PCertContext: PCCERT_CONTEXT;
V: OleVariant;
i: Integer;
begin
Store := CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
V := 'DESCRIPCION CERTIFICADO';
Certs := Store.Certificates as ICertificates2;
lsCertificados.Items.Clear;
if Certs.Count > 0 then begin
for i := 1 to Certs.Count do begin
Cert := IInterface(Certs.Item[i]) as ICertificate2;
CertContext := Cert as ICertContext;
CertContext.Get_CertContext(Integer(PCertContext));
lsCertificados.Items.Add(Cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME));
if (Cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) = V) then begin
if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) = False then
ShowMessage( 'No se ha podido adjuntar el certificado digital para'+CHR(13)+CHR(10)+V );
end;
end;
lsCertificados.Update;
end;
end;
Al ejecutar este evento no da ningún error, pero sí al enviar la petición de una servicio de la Web.
Utilizo Delphi 2007 y Windows 7
Si alguien tiene experiencia en este tema se lo agradecería.
Gracias.
Adolfo Bonis
Barcelona