private async Task UpdateVariables(CertificateDevice device) { try { var request = (HttpWebRequest)WebRequest.Create(device.HostName); request.AllowAutoRedirect = true; using (var response = (HttpWebResponse)await request.GetResponseAsync()) { var cert = new X509Certificate2(request.ServicePoint.Certificate); device.FriendlyName = cert.FriendlyName; device.HasPrivateKey = cert.HasPrivateKey; device.Issuer = cert.Issuer; device.NotAfter = cert.NotAfter.ToUniversalTime(); device.NotBefore = cert.NotBefore.ToUniversalTime(); device.SignatureAlgorithm = cert.SignatureAlgorithm.FriendlyName; device.Subject = cert.Subject; device.Thumbprint = cert.Thumbprint; _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "FriendlyName", cert.FriendlyName)); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "HasPrivateKey", cert.HasPrivateKey)); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "Issuer", cert.Issuer)); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "NotAfter", cert.NotAfter.ToUniversalTime().ToString("s"))); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "NotBefore", cert.NotBefore.ToUniversalTime().ToString("s"))); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "SignatureAlgorithm", cert.SignatureAlgorithm.FriendlyName)); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "Subject", cert.Subject)); _messageQueue.Publish(new UpdateVariableMessage(Name, device.Id, "Thumbprint", cert.Thumbprint)); response.Close(); } } catch (Exception e) { _log.Error(e.Message, e); } }
public CertificateScriptObject(CertificateDevice device) { _device = device; }