Пример #1
0
        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;
 }