Skip to content
Snippets Groups Projects
Commit 0e3342e0 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Properly parse web hostname from sbbs.ini

Get both the webroot and web hostname from sbbs.ini rather than use
system.inet_addr.  system.inet_addr is configured in the messages
section, so it's implied that it's for email addresses.

Also, allow configuring the sysop email address with the SysopEmail
global key in the ini file.

This is a cleanup and duplicate of !82
parent 70b1f644
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,6 @@ require("acmev2.js", "ACMEv2"); ...@@ -6,7 +6,6 @@ require("acmev2.js", "ACMEv2");
var ks_fname = backslash(system.ctrl_dir)+"letsyncrypt.key"; var ks_fname = backslash(system.ctrl_dir)+"letsyncrypt.key";
var setting_fname = backslash(system.ctrl_dir)+"letsyncrypt.ini"; var setting_fname = backslash(system.ctrl_dir)+"letsyncrypt.ini";
var sks_fname = backslash(system.ctrl_dir)+"ssl.cert"; 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 maincnf_fname = backslash(system.ctrl_dir)+"main.cnf";
var recycle_sem = backslash(system.ctrl_dir)+"recycle.web"; var recycle_sem = backslash(system.ctrl_dir)+"recycle.web";
...@@ -164,7 +163,6 @@ var revoke = false; ...@@ -164,7 +163,6 @@ var revoke = false;
var rsa; var rsa;
var sks; var sks;
var sks_group_readable = false; var sks_group_readable = false;
var sbbsini = new File(sbbsini_fname);
var settings = new File(setting_fname); var settings = new File(setting_fname);
var syspass; var syspass;
var webroot; var webroot;
...@@ -173,19 +171,13 @@ var usersa = true; // TODO: Make configurable ...@@ -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 keysize = 256; // TODO: Make configurable... ECC sizes are 32, 48, and 66 (66 is not supported by Let's Encrypt)
var waittime; var waittime;
var TOSAgreed=false; var TOSAgreed=false;
var sbbsini = load("sbbsini.js");
/* var sysop_email = "sysop@" + system.inet_addr;
* Get the Web Root
*/
if (!sbbsini.open("r"))
throw("Unable to open "+sbbsini.name);
webroot = backslash(sbbsini.iniGetValue("Web", "RootDirectory", "../web/root"));
sbbsini.close();
/* /*
* Now read the settings and state. * Now read the settings and state.
*/ */
webroots[system.inet_addr] = webroot; webroots[sbbsini.web.host_name] = sbbsini.web.root_dir;
if (settings.open("r")) { if (settings.open("r")) {
domain_list = settings.iniGetObject("Domains"); domain_list = settings.iniGetObject("Domains");
for (i in domain_list) { for (i in domain_list) {
...@@ -202,6 +194,7 @@ if (settings.open("r")) { ...@@ -202,6 +194,7 @@ if (settings.open("r")) {
dir_path = settings.iniGetValue(null, "Directory", dir_path); dir_path = settings.iniGetValue(null, "Directory", dir_path);
TOSAgreed = settings.iniGetValue(null, "TOSAgreed", TOSAgreed); TOSAgreed = settings.iniGetValue(null, "TOSAgreed", TOSAgreed);
sks_group_readable = settings.iniGetValue(null, "GroupReadableKeyFile", sks_group_readable); sks_group_readable = settings.iniGetValue(null, "GroupReadableKeyFile", sks_group_readable);
sysop_email = settings.iniGetValue(null, "SysopEmail", sysop_email);
settings.close(); settings.close();
} }
...@@ -287,10 +280,10 @@ if (renew || rekey || revoke || print_tos) { ...@@ -287,10 +280,10 @@ if (renew || rekey || revoke || print_tos) {
if (renew || rekey || revoke) { if (renew || rekey || revoke) {
if (acme.key_id === undefined) { if (acme.key_id === undefined) {
if (TOSAgreed) 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 { else {
try { try {
acme.create_new_account({contact:["mailto:sysop@"+system.inet_addr]}); acme.create_new_account({contact:["mailto:"+sysop_email]});
} }
catch (e) { catch (e) {
log(LOG_ERR, "Creating account without agreeing to ToS failed."); log(LOG_ERR, "Creating account without agreeing to ToS failed.");
...@@ -344,7 +337,7 @@ if (revoke) { ...@@ -344,7 +337,7 @@ if (revoke) {
if (renew) { if (renew) {
/* /*
* Create the order, using system.inet_addr * Create the order, using sbbsini.web.host_name
*/ */
for (i in webroots) for (i in webroots)
identifiers.push({type:"dns",value:i}); identifiers.push({type:"dns",value:i});
...@@ -376,7 +369,7 @@ if (renew) { ...@@ -376,7 +369,7 @@ if (renew) {
csr.subjectpublickeyinfo=rsa; csr.subjectpublickeyinfo=rsa;
csr.oganizationname=system.name; csr.oganizationname=system.name;
csr.commonname=system.inet_addr; csr.commonname=sbbsini.web.host_name;
for (i in webroots) for (i in webroots)
dnsnames.push(i); dnsnames.push(i);
csr.add_extension("2.5.29.17", false, create_dnsnames(dnsnames)); csr.add_extension("2.5.29.17", false, create_dnsnames(dnsnames));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment