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"); }
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"); }
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(); } } }
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); }; }