I’m trying to enable the TLS on Graylog 3.1 dockerized (MongoDB and Elasticsearch also lives in containers, docs ), so I followed the next steps (I read the docs ).
and in the container I edited the .conf file enabling the https and editing the http_publish_uri adding the s to the http:
# Enable HTTPS support for the HTTP interface.
# This secures the communication with the HTTP interface with TLS to prevent request forgery and eavesdropping.
http_enable_tls = true
# The X.509 certificate chain file in PEM format to use for securing the HTTP interface.
http_tls_cert_file = /path/to/graylog-certificate.pem
# The PKCS#8 private key file in PEM format to use for securing the HTTP interface.
http_tls_key_file = /path/to/graylog-key.pem
# The password to unlock the private key used for securing the HTTP interface. (if key is encrypted)
http_tls_key_password = secret
Finally I restart the container to perform the changes, Graylog seems to be ok but in the browser it is no appearing the https and I’m reciving this message in the docker logs
WARN : org.graylog2.shared.rest.resources.ProxiedResource - Unable to call https://192.168.1.1:9000/api/system/inputstates on node <978f7e2e-316c-4799-884a-7d4ad3720347>: connect timed out
This containers lives in a remote server, I exposed the Graylog with some DNS using a Nginx, I think that my problem has to be with this but I’m no realizing how to expose with the https.
Is the nginx unnecesary? or How should I configure the Nginx in order to expose the graylog as https?
I also understand that the log refers to my communication between graylog and elasticsearch but not knowing how to solve it.
Thanks, this was the solution, now I’m facing why my main pages is blank, I added the cert to the java truestore and I’m not having “bad” logs at start, apparently all to seem ok.
2020-03-17 15:57:41,716 INFO : org.graylog2.shared.initializers.JerseyService - Enabling CORS for HTTP endpoint
2020-03-17 15:58:10,747 INFO : org.glassfish.grizzly.http.server.NetworkListener - Started listener bound to [0.0.0.0:9000]
2020-03-17 15:58:10,749 INFO : org.glassfish.grizzly.http.server.HttpServer - [HttpServer] Started.
2020-03-17 15:58:10,749 INFO : org.graylog2.shared.initializers.JerseyService - Started REST API at <0.0.0.0:9000>
2020-03-17 15:58:10,750 INFO : org.graylog2.shared.initializers.ServiceManagerListener - Services are healthy
2020-03-17 15:58:10,751 INFO : org.graylog2.shared.initializers.InputSetupService - Triggering launching persisted inputs, node transitioned from Uninitialized [LB:DEAD] to Running [LB:ALIVE]
2020-03-17 15:58:10,751 INFO : org.graylog2.bootstrap.ServerBootstrap - Services started, startup times in ms: {InputSetupService [RUNNING]=5, GracefulShutdownService [RUNNING]=8, BufferSynchronizerService [RUNNING]=20, KafkaJournal [RUNNING]=23, OutputSetupService [RUNNING]=26, EtagService [RUNNING]=52, JobSchedulerService [RUNNING]=53, ConfigurationEtagService [RUNNING]=58, UrlWhitelistService [RUNNING]=63, JournalReader [RUNNING]=66, MongoDBProcessingStatusRecorderService [RUNNING]=100, LookupTableService [RUNNING]=111, StreamCacheService [RUNNING]=119, PeriodicalsService [RUNNING]=170, JerseyService [RUNNING]=29833}
2020-03-17 15:58:10,758 INFO : org.graylog2.bootstrap.ServerBootstrap - Graylog server up and running.