Improved external web-server
This commit is contained in:
parent
d91556681b
commit
b65a9f0bd3
1 changed files with 34 additions and 28 deletions
|
|
@ -72,14 +72,14 @@ public class HalExternalWebDaemon implements HalDaemon {
|
||||||
renewCertificate();
|
renewCertificate();
|
||||||
startHttpServer();
|
startHttpServer();
|
||||||
} else {
|
} else {
|
||||||
logger.warning("Missing '" + CONFIG_HTTP_EXTERNAL_PORT + "' and '" + CONFIG_HTTP_EXTERNAL_DOMAIN + "' configuration, will not setup external http server.");
|
logger.warning("Missing '" + CONFIG_HTTP_EXTERNAL_PORT + "' and '" + CONFIG_HTTP_EXTERNAL_DOMAIN + "' configuration, will not setup external web-server.");
|
||||||
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
||||||
UserMessageManager.MessageLevel.WARNING, "Missing '" + CONFIG_HTTP_EXTERNAL_PORT + "' and '" + CONFIG_HTTP_EXTERNAL_DOMAIN + "' configuration, will not setup external http server.", UserMessageManager.MessageTTL.DISMISSED));
|
UserMessageManager.MessageLevel.WARNING, "Missing '" + CONFIG_HTTP_EXTERNAL_PORT + "' and '" + CONFIG_HTTP_EXTERNAL_DOMAIN + "' configuration, will not setup external web-server.", UserMessageManager.MessageTTL.DISMISSED));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.log(Level.SEVERE, "Was unable to initiate external web server.", e);
|
logger.log(Level.SEVERE, "Was unable to initiate external web-server.", e);
|
||||||
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
||||||
UserMessageManager.MessageLevel.ERROR, "Was unable to initiate external web server.", UserMessageManager.MessageTTL.DISMISSED));
|
UserMessageManager.MessageLevel.ERROR, "Was unable to initiate external web-server.", UserMessageManager.MessageTTL.DISMISSED));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -90,35 +90,41 @@ public class HalExternalWebDaemon implements HalDaemon {
|
||||||
HttpServer tmpHttpServer = null;
|
HttpServer tmpHttpServer = null;
|
||||||
String acmeType = HalContext.getStringProperty(HalContext.CONFIG_HTTP_EXTERNAL_CERT, "acme_http");
|
String acmeType = HalContext.getStringProperty(HalContext.CONFIG_HTTP_EXTERNAL_CERT, "acme_http");
|
||||||
|
|
||||||
if ("acme_http".equals(acmeType)) {
|
try {
|
||||||
tmpHttpServer = new HttpServer(80);
|
if ("acme_http".equals(acmeType)) {
|
||||||
tmpHttpServer.start();
|
tmpHttpServer = new HttpServer(80);
|
||||||
|
tmpHttpServer.start();
|
||||||
|
|
||||||
acme = new AcmeClient(acmeDataStore, new AcmeHttpChallengeFactory(tmpHttpServer), AcmeClient.ACME_SERVER_LETSENCRYPT_STAGING);
|
acme = new AcmeClient(acmeDataStore, new AcmeHttpChallengeFactory(tmpHttpServer), AcmeClient.ACME_SERVER_LETSENCRYPT_STAGING);
|
||||||
} else if ("none".equals(acmeType)) {
|
} else if ("none".equals(acmeType)) {
|
||||||
acme = null;
|
acme = null;
|
||||||
} else if ("acme_dns".equals(acmeType)) {
|
} else if ("acme_dns".equals(acmeType)) {
|
||||||
acme = new AcmeClient(acmeDataStore, new AcmeManualDnsChallengeFactory());
|
acme = new AcmeClient(acmeDataStore, new AcmeManualDnsChallengeFactory());
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Unknown config value for " + externalServerUrl);
|
throw new IllegalArgumentException("Unknown config value for " + externalServerUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Request certificate and start the external webserver
|
// Request certificate and start the external webserver
|
||||||
|
|
||||||
if (acme != null) {
|
if (acme != null) {
|
||||||
acme.addDomain(HalContext.getStringProperty(CONFIG_HTTP_EXTERNAL_DOMAIN));
|
acme.addDomain(HalContext.getStringProperty(CONFIG_HTTP_EXTERNAL_DOMAIN));
|
||||||
acme.prepareRequest();
|
acme.prepareRequest();
|
||||||
certificate = acme.requestCertificate();
|
certificate = acme.requestCertificate();
|
||||||
acmeDataStore.storeCertificate(certificate);
|
acmeDataStore.storeCertificate(certificate);
|
||||||
|
|
||||||
logger.info("SSL certificate successfully generated.");
|
logger.info("SSL certificate successfully generated.");
|
||||||
|
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
||||||
|
UserMessageManager.MessageLevel.INFO, "SSL certificate successfully generated for external web-server.", UserMessageManager.MessageTTL.DISMISSED));
|
||||||
|
} else {
|
||||||
|
logger.warning("No SSL certificate is configured for external HTTP Server.");
|
||||||
|
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
||||||
|
UserMessageManager.MessageLevel.WARNING, "No SSL certificate is configured for external web-server.", UserMessageManager.MessageTTL.DISMISSED));
|
||||||
|
certificate = null;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.log(Level.SEVERE, "Unable to request cert from ACME service.", e);
|
||||||
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
||||||
UserMessageManager.MessageLevel.INFO, "SSL certificate successfully generated.", UserMessageManager.MessageTTL.DISMISSED));
|
UserMessageManager.MessageLevel.WARNING, "Was unable to generate SSL certificate for external web-server: " + e.getMessage(), UserMessageManager.MessageTTL.DISMISSED));
|
||||||
} else {
|
|
||||||
logger.warning("No SSL certificate is configured for external HTTP Server.");
|
|
||||||
HalAlertManager.getInstance().addAlert(new UserMessageManager.UserMessage(
|
|
||||||
UserMessageManager.MessageLevel.WARNING, "No SSL certificate is configured for external HTTP Server.", UserMessageManager.MessageTTL.DISMISSED));
|
|
||||||
certificate = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue