Ver Mensaje Individual
  #465  
Antiguo 29-03-2017
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Reputación: 16
espinete Va camino a la fama
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;
Responder Con Cita