Exemple #1
0
        public static void Save(CaConfigurationModel model)
        {
            var text = JsonConvert.SerializeObject(model, Formatting.Indented);

            FileWithAcl.WriteAllText(CfgFile, text, "644", "root", "wheel");
            ConsoleLogger.Log("[ca] configuration saved");
        }
Exemple #2
0
        public void Save(CaConfigurationModel model)
        {
            var text = JsonConvert.SerializeObject(model, Formatting.Indented);

            if (File.Exists(_cfgFile))
            {
                File.Copy(_cfgFile, _cfgFileBackup, true);
            }
            File.WriteAllText(_cfgFile, text);
            ConsoleLogger.Log("[ca] configuration saved");
        }
Exemple #3
0
 public CaConfiguration()
 {
     IoDir.CreateDirectory(Parameter.AntdCfgServices);
     IoDir.CreateDirectory(_caMainDirectory);
     if (!File.Exists(_cfgFile))
     {
         _serviceModel = new CaConfigurationModel();
     }
     else
     {
         try {
             var text = File.ReadAllText(_cfgFile);
             var obj  = JsonConvert.DeserializeObject <CaConfigurationModel>(text);
             _serviceModel = obj;
         }
         catch (Exception) {
             _serviceModel = new CaConfigurationModel();
         }
     }
 }
Exemple #4
0
        public CaModule()
        {
            Get["/ca"] = x => {
                var caIsActive = CaConfiguration.IsActive();
                var model      = new PageCaModel {
                    CaIsActive = caIsActive,
                    CaOptions  = CaConfiguration.Get() ?? new CaConfigurationModel()
                };
                return(JsonConvert.SerializeObject(model));
            };

            Post["/ca/set"] = x => {
                CaConfiguration.Set();
                return(HttpStatusCode.OK);
            };

            Post["/ca/enable"] = x => {
                CaConfiguration.Enable();
                return(HttpStatusCode.OK);
            };

            Post["/ca/disable"] = x => {
                CaConfiguration.Disable();
                return(HttpStatusCode.OK);
            };

            Post["/ca/options"] = x => {
                string keyPassout                 = Request.Form.KeyPassout;
                string rootCountryName            = Request.Form.RootCountryName;
                string rootStateOrProvinceName    = Request.Form.RootStateOrProvinceName;
                string rootLocalityName           = Request.Form.RootLocalityName;
                string rootOrganizationName       = Request.Form.RootOrganizationName;
                string rootOrganizationalUnitName = Request.Form.RootOrganizationalUnitName;
                string rootCommonName             = Request.Form.RootCommonName;
                string rootEmailAddress           = Request.Form.RootEmailAddress;
                var    model = new CaConfigurationModel {
                    KeyPassout                 = keyPassout,
                    RootCountryName            = rootCountryName,
                    RootStateOrProvinceName    = rootStateOrProvinceName,
                    RootLocalityName           = rootLocalityName,
                    RootOrganizationName       = rootOrganizationName,
                    RootOrganizationalUnitName = rootOrganizationalUnitName,
                    RootCommonName             = rootCommonName,
                    RootEmailAddress           = rootEmailAddress,
                };
                CaConfiguration.Save(model);
                return(HttpStatusCode.OK);
            };

            Get["/ca/crl"] = x => {
                var crl = $"{Parameter.AntdCfg}/ca/intermediate/crl/intermediate.crl.pem";
                if (!File.Exists(crl))
                {
                    return(HttpStatusCode.ExpectationFailed);
                }
                var          file     = new FileStream(crl, FileMode.Open);
                const string fileName = "intermediate.crl.pem";
                var          response = new StreamResponse(() => file, MimeTypes.GetMimeType(fileName));
                return(response.AsAttachment(fileName));
            };

            Post["/ca/certificate/user"] = x => {
                string name       = Request.Form.Name;
                string passphrase = Request.Form.Passphrase;
                string email      = Request.Form.Email;
                string c          = Request.Form.CountryName;
                string st         = Request.Form.StateOrProvinceName;
                string l          = Request.Form.LocalityName;
                string o          = Request.Form.OrganizationName;
                string ou         = Request.Form.OrganizationalUnitName;
                CaConfiguration.CreateUserCertificate(name, passphrase, email, c, st, l, o, ou);
                return(HttpStatusCode.OK);
            };

            Post["/ca/certificate/server"] = x => {
                string name       = Request.Form.Name;
                string passphrase = Request.Form.Passphrase;
                string email      = Request.Form.Email;
                string c          = Request.Form.CountryName;
                string st         = Request.Form.StateOrProvinceName;
                string l          = Request.Form.LocalityName;
                string o          = Request.Form.OrganizationName;
                string ou         = Request.Form.OrganizationalUnitName;
                CaConfiguration.CreateServerCertificate(name, passphrase, email, c, st, l, o, ou);
                return(HttpStatusCode.OK);
            };

            Post["/ca/certificate/dc"] = x => {
                string name       = Request.Form.Name;
                string passphrase = Request.Form.Passphrase;
                string dcGuid     = Request.Form.Guid;
                string dcDns      = Request.Form.Dns;
                string email      = Request.Form.Email;
                string c          = Request.Form.CountryName;
                string st         = Request.Form.StateOrProvinceName;
                string l          = Request.Form.LocalityName;
                string o          = Request.Form.OrganizationName;
                string ou         = Request.Form.OrganizationalUnitName;
                CaConfiguration.CreateDomainControllerCertificate(name, passphrase, dcGuid, dcDns, email, c, st, l, o, ou);
                return(HttpStatusCode.OK);
            };

            Post["/ca/certificate/sc"] = x => {
                string name       = Request.Form.Name;
                string passphrase = Request.Form.Passphrase;
                string upn        = Request.Form.Upn;
                string email      = Request.Form.Email;
                string c          = Request.Form.CountryName;
                string st         = Request.Form.StateOrProvinceName;
                string l          = Request.Form.LocalityName;
                string o          = Request.Form.OrganizationName;
                string ou         = Request.Form.OrganizationalUnitName;
                CaConfiguration.CreateSmartCardCertificate(name, passphrase, upn, email, c, st, l, o, ou);
                return(HttpStatusCode.OK);
            };
        }