Por si hay alguien utilizando los componentes de
SecureBlackBox para gestionar certificados, aquí va mi granito de arena...
Para asignar el certificado al HTTPRIO, necesitamos el SerialNumber del mismo.
Partiendo de que tenemos todos los certificados del sistema en un ComboBox (más abajo pongo cómo rellenarlo):
Código Delphi
[-]
var CERTIFICADO : string
SetLength(CERTIFICADO, WinCertStorage.Certificates[comboCertificate.ItemIndex].CertHandle.pCertInfo.SerialNumber.cbData * 2);
BinToHex(WinCertStorage.Certificates[comboCertificate.ItemIndex].CertHandle.pCertInfo.SerialNumber.pbData,
PChar(CERTIFICADO),
WinCertStorage.Certificates[comboCertificate.ItemIndex].CertHandle.pCertInfo.SerialNumber.cbData);
HTTPRIO1.HTTPWebNode.ClientCertificate.SerialNum := certificado;
Y aquí cómo rellenar el ComboBox (comboCertificate) con los certificados:
Código Delphi
[-]
for i := 0 to WinCertStorage.Count - 1 do
begin
Cert := WinCertStorage.Certificates[i];
ComboCertificate.Items.Add(Cert.SubjectName.CommonName + ' de ' + Cert.IssuerName.CommonName+' (Hasta: '+formatdatetime('dd/mm/yyyy',Cert.ValidTo)+')');
end;