diff --git a/exec/letsyncrypt.js b/exec/letsyncrypt.js index 5f54474d14d75c63f8e03ab9ce3f1ff077a13a69..75ebffe462d83243ae47428cc69b2acf9feb1ca6 100644 --- a/exec/letsyncrypt.js +++ b/exec/letsyncrypt.js @@ -6,7 +6,6 @@ require("acmev2.js", "ACMEv2"); var ks_fname = backslash(system.ctrl_dir)+"letsyncrypt.key"; var setting_fname = backslash(system.ctrl_dir)+"letsyncrypt.ini"; var sks_fname = backslash(system.ctrl_dir)+"ssl.cert"; -var sbbsini_fname = backslash(system.ctrl_dir)+"sbbs.ini"; var maincnf_fname = backslash(system.ctrl_dir)+"main.cnf"; var recycle_sem = backslash(system.ctrl_dir)+"recycle.web"; @@ -164,7 +163,6 @@ var revoke = false; var rsa; var sks; var sks_group_readable = false; -var sbbsini = new File(sbbsini_fname); var settings = new File(setting_fname); var syspass; var webroot; @@ -173,19 +171,13 @@ var usersa = true; // TODO: Make configurable var keysize = 256; // TODO: Make configurable... ECC sizes are 32, 48, and 66 (66 is not supported by Let's Encrypt) var waittime; var TOSAgreed=false; - -/* - * Get the Web Root - */ -if (!sbbsini.open("r")) - throw("Unable to open "+sbbsini.name); -webroot = backslash(sbbsini.iniGetValue("Web", "RootDirectory", "../web/root")); -sbbsini.close(); +var sbbsini = load("sbbsini.js"); +var sysop_email = "sysop@" + system.inet_addr; /* * Now read the settings and state. */ -webroots[system.inet_addr] = webroot; +webroots[sbbsini.web.host_name] = sbbsini.web.root_dir; if (settings.open("r")) { domain_list = settings.iniGetObject("Domains"); for (i in domain_list) { @@ -202,6 +194,7 @@ if (settings.open("r")) { dir_path = settings.iniGetValue(null, "Directory", dir_path); TOSAgreed = settings.iniGetValue(null, "TOSAgreed", TOSAgreed); sks_group_readable = settings.iniGetValue(null, "GroupReadableKeyFile", sks_group_readable); + sysop_email = settings.iniGetValue(null, "SysopEmail", sysop_email); settings.close(); } @@ -287,10 +280,10 @@ if (renew || rekey || revoke || print_tos) { if (renew || rekey || revoke) { if (acme.key_id === undefined) { if (TOSAgreed) - acme.create_new_account({termsOfServiceAgreed:TOSAgreed,contact:["mailto:sysop@"+system.inet_addr]}); + acme.create_new_account({termsOfServiceAgreed:TOSAgreed,contact:["mailto:"+sysop_email]}); else { try { - acme.create_new_account({contact:["mailto:sysop@"+system.inet_addr]}); + acme.create_new_account({contact:["mailto:"+sysop_email]}); } catch (e) { log(LOG_ERR, "Creating account without agreeing to ToS failed."); @@ -344,7 +337,7 @@ if (revoke) { if (renew) { /* - * Create the order, using system.inet_addr + * Create the order, using sbbsini.web.host_name */ for (i in webroots) identifiers.push({type:"dns",value:i}); @@ -376,7 +369,7 @@ if (renew) { csr.subjectpublickeyinfo=rsa; csr.oganizationname=system.name; - csr.commonname=system.inet_addr; + csr.commonname=sbbsini.web.host_name; for (i in webroots) dnsnames.push(i); csr.add_extension("2.5.29.17", false, create_dnsnames(dnsnames));