public void MakeNewClientCertificate(CreateCertificateModel model) { X509Certificate2 caCertificate = default(X509Certificate2); X509Certificate2 newCertificate = _sensorsClient.GetSignedClientCertificate(model, out caCertificate); CertificatesProcessor.AddCertificateToTrustedRootCA(caCertificate); //var convertedCertWithKey = CertificatesProcessor.AddPrivateKey(newCertificate, subjectKeyPair); ConfigProvider.Instance.UpdateClientCertificate(newCertificate, model.CommonName); _sensorsClient.ReplaceClientCertificate(newCertificate); StartTreeThread(); OnDefaultCertificateReplacedEvent(); }
public static CertificateData Convert(CreateCertificateModel model) { CertificateData data = new CertificateData { CommonName = model.CommonName, OrganizationName = model.OrganizationName, StateOrProvinceName = model.StateOrProvinceName, LocalityName = model.LocalityName, OrganizationUnitName = model.OrganizationUnitName, EmailAddress = model.EmailAddress, CountryName = model.CountryName }; return(data); }
public override X509Certificate2 GetSignedClientCertificate(CreateCertificateModel model, out X509Certificate2 caCertificate) { CertificateData data = Converter.Convert(model); string subjectString = CertificatesProcessor.GetSubjectString(data); var rsa = RSA.Create(2048); CertificateSignRequestMessage request = new CertificateSignRequestMessage(); request.Subject = subjectString; request.RSAParameters = Converter.Convert(rsa.ExportParameters(true)); request.CommonName = model.CommonName; //var certificateRequest = CertificatesProcessor.CreateCertificateSignRequest(data, out subjectKeyPair); var signedCertificateMessage = _sensorsClient.SignClientCertificate(request); caCertificate = new X509Certificate2(signedCertificateMessage.CaCertificateBytes.ToByteArray(), "", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); X509Certificate2 winCertificate = new X509Certificate2(signedCertificateMessage.SignedCertificateBytes.ToByteArray(), "", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); return(winCertificate); }
public abstract X509Certificate2 GetSignedClientCertificate(CreateCertificateModel model, out X509Certificate2 caCertificate);