I'm porting an application from Delphi 2010 to Delphi 11 and there is a call to a SOAP-Webservice.
I used the IDE WSDL Import Tool to generate the soap delphi units (for both Delphi versions with the respective tool).
In Delphi 2010 I used a .p12 client certificate but it seems that this isn't working anymore in Delphi 11. So now I use a .p7b client certificate like in the code below. (I've tried several different approaches with the .p12 too)
var
rio: THTTPRIO;
soapServicePdf: PdfWS;
soapResponsePdf: previewPdfResponse;
clientCert: TClientCertExt;
begin
rio := THTTPRIO.Create(nil);
TClientCertExt(rio.HTTPWebNode.ClientCertificate).FileName := 'key.pb7';
TClientCertExt(rio.HTTPWebNode.ClientCertificate).Password := 'myPass';
TClientCertExt(rio.HTTPWebNode.ClientCertificate).CertName := 'certname';
soapServicePdf := GetServiceWS(false, url, rio);
soapResponsePdf := soapServicePdf.getPdfWS(param1, param2);
end;
Now I get an error message when requesting the webservice that says "Im Clientzertifikat sind keine Anmeldeinformationen enthalten" (translation: "No credentials are included in the client certificate"). After all the other errormessages with the different approaches this is the one that seems which is the closest to work.
What do I need to do for making a SOAP-Request (when I have an wsdl) to a webservice with a client certificate in Delphi 11? (I have the certificate in the following formats: DER (Binary), PEM (Base64), P7B, PFX and JKS)