# Graylog in Docker - Certificate Broken

**URL:** <https://community.graylog.org/t/graylog-in-docker-certificate-broken/30752>\
**Category:** Graylog Central (peer support)\
**Tags:** docker\
**Created:** [November 22, 2023, 2:51am UTC](https://community.graylog.org/t/graylog-in-docker-certificate-broken/30752 "2023-11-22T02:51:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![webboty](https://sea2.discourse-cdn.com/flex016/user_avatar/community.graylog.org/webboty/32/15816_2.png) [@webboty](https://community.graylog.org/u/webboty)\
**Post date:** [November 22, 2023, 2:51am UTC](https://community.graylog.org/t/graylog-in-docker-certificate-broken/30752/1 "2023-11-22T02:51:42Z")

</div>

Hello … i need help to get my previously working graylog docker environment working again.

The issue is that the graylog server does not start as of certificate issues.

**1. Describe your incident:**  
I was trying to make graylog running in a docker environment work with csf.  
To do so i was trying to set up a specific network in the docker-compose.yml.

As all attempts failed i reversed my docker-compose.yml to the one that was working previously … see below.

However now i do not get the graylog server operational anymore.

The issue is that it can not connect to the datanode container runnining opensearch.  
And the datanode container fails because some certificate is not matching anymore.

Here is the error message:

# **Datanode Error:**

graylog-datanode-1 | 2023-11-22T02:35:03.247Z WARN [OpensearchNodeHeartbeat] Opensearch REST api of process 97 unavailable. Cause: Host name ‘cf4d733584d8’ does not match the certificate subject provided by the peer (CN=bf327a655a8f)

# **GrayLog Error:**

2023-11-22 02:50:31,243 ERROR: org.graylog2.storage.versionprobe.VersionProbe - Unable to retrieve version from Elasticsearch node: Hostname cf4d733584d8 not verified:  
graylog-graylog-1 | certificate: sha256/A8XL28JvgU5ctfUYhJKX8xA6IiyB5LqFpBHvaOz/aNA=  
graylog-graylog-1 | DN: CN=bf327a655a8f  
graylog-graylog-1 | subjectAltNames: [127.0.0.1, 0:0:0:0:0:0:0:1, 192.168.0.3, localhost, bf327a655a8f, 0:0:0:0:0:0:0:1]. - Hostname cf4d733584d8 not verified:  
graylog-graylog-1 | certificate: sha256/A8XL28JvgU5ctfUYhJKX8xA6IiyB5LqFpBHvaOz/aNA=  
graylog-graylog-1 | DN: CN=bf327a655a8f  
graylog-graylog-1 | subjectAltNames: [127.0.0.1, 0:0:0:0:0:0:0:1, 192.168.0.3, localhost, bf327a655a8f, 0:0:0:0:0:0:0:1].  
graylog-graylog-1 | 2023-11-22 02:50:31,245 INFO : org.graylog2.storage.versionprobe.VersionProbe - OpenSearch/Elasticsearch is not available. Retry #206

**I know that i had to setup a certificate the very first time i ran graylog.**  
**However i do not get to that web ui interface anymore to change the certificate.**

**2. Describe your environment:**

- OS Information:  
Ubuntu 20.04 with docker.

Here is my current docker-compose.yml

======

version: “3.8”

services:  
mongodb:  
image: “mongo:5.0”  
volumes:  
- “mongodb\_data:/data/db”  
restart: “on-failure”

datanode:  
image: “${DATANODE\_IMAGE:-graylog/graylog-datanode:5.2}”  
environment:  
GRAYLOG\_DATANODE\_NODE\_ID\_FILE: “/var/lib/graylog-datanode/node-id”  
GRAYLOG\_DATANODE\_PASSWORD\_SECRET: “uiZ31neZO0rZGe6GyAnh6AMpFkkxCxOYxFYiuKidVl4Wmfit561SeB6H9eR4TXoMq3yFMOYSZP0kKLxkE1ESNS9DhKXFcYD”  
GRAYLOG\_DATANODE\_ROOT\_PASSWORD\_SHA2: “5ae7e2f0d47e5311db55f45ba7fbd7846bd7cb03e7a606a617aeda7eddad2a5”  
GRAYLOG\_DATANODE\_MONGODB\_URI: “mongodb://mongodb:27017/graylog”  
ulimits:  
memlock:  
hard: -1  
soft: -1  
nofile:  
soft: 65536  
hard: 65536  
ports:  
- “8999:8999/tcp” # DataNode API  
- “9201:9200/tcp”  
- “9301:9300/tcp”  
volumes:  
- “graylog-datanode:/var/lib/graylog-datanode”  
restart: “on-failure”

graylog:  
hostname: “server”  
image: “${GRAYLOG\_IMAGE:-graylog/graylog:5.2}”  
depends\_on:  
mongodb:  
condition: “service\_started”  
entrypoint: “/usr/bin/tini – /docker-entrypoint.sh”  
environment:  
GRAYLOG\_NODE\_ID\_FILE: “/usr/share/graylog/data/data/node-id”  
GRAYLOG\_PASSWORD\_SECRET: “uiZ31neZO0rZGe6GyAnh6AMpFkkxCxOYxFYiuKidVl4Wmfit561SeB6H9eR4TXoMq3yFMOYSZP0kKLxkE1ESNS9DhKXFcYD”  
GRAYLOG\_ROOT\_PASSWORD\_SHA2: “5ae7e2f0d47e5311db55f45ba7fbd7846bd7cb03e7a606a617aeda7eddad2a5”  
GRAYLOG\_HTTP\_BIND\_ADDRESS: “0.0.0.0:9001”  
GRAYLOG\_HTTP\_EXTERNAL\_URI: “[http://XXXXXXX:9001/](http://XXXXXXX:9001/)”  
GRAYLOG\_MONGODB\_URI: “mongodb://mongodb:27017/graylog”  
#Graylog Central (peer support) Mail Settings  
GRAYLOG\_TRANSPORT\_EMAIL\_PROTOCOL: “smtp”  
GRAYLOG\_TRANSPORT\_EMAIL\_WEB\_INTERFACE\_URL: “XXXXXXXX:9001/”  
GRAYLOG\_TRANSPORT\_EMAIL\_HOSTNAME: “XXXXXXX”  
GRAYLOG\_TRANSPORT\_EMAIL\_ENABLED: “true”  
GRAYLOG\_TRANSPORT\_EMAIL\_PORT: “465”  
GRAYLOG\_TRANSPORT\_EMAIL\_USE\_AUTH: “true”  
GRAYLOG\_TRANSPORT\_EMAIL\_AUTH\_USERNAME: “XXXXXXXXX”  
GRAYLOG\_TRANSPORT\_EMAIL\_AUTH\_PASSWORD: “XXXXXX”  
GRAYLOG\_TRANSPORT\_EMAIL\_USE\_TLS: “false”  
GRAYLOG\_TRANSPORT\_EMAIL\_USE\_SSL: “true”  
GRAYLOG\_TRANSPORT\_FROM\_EMAIL: “XXXXXXXXX”  
GRAYLOG\_TRANSPORT\_SUBJECT\_PREFIX: “[graylog]”  
ports:  
- “5045:5044/tcp” # Beats  
- “5141:5140/udp” # Syslog  
- “5141:5140/tcp” # Syslog  
- “5556:5555/tcp” # RAW TCP  
- “5556:5555/udp” # RAW TCP  
- “9001:9001/tcp” # Server API  
- “12201:12201/tcp” # GELF TCP  
- “12201:12201/udp” # GELF UDP  
#- “10000:10000/tcp” # Custom TCP port  
#- “10000:10000/udp” # Custom UDP port  
- “13301:13301/tcp” # Forwarder data  
- “13302:13302/tcp” # Forwarder config  
volumes:  
- “graylog\_data:/usr/share/graylog/data/data”  
- “graylog\_journal:/usr/share/graylog/data/journal”  
restart: “on-failure”

volumes:  
mongodb\_data:  
graylog-datanode:  
graylog\_data:  
graylog\_journal:

---

<div class="post-metadata">

**Author:** ![webboty](https://sea2.discourse-cdn.com/flex016/user_avatar/community.graylog.org/webboty/32/15816_2.png) [@webboty](https://community.graylog.org/u/webboty)\
**Post date:** [November 22, 2023, 11:52am UTC](https://community.graylog.org/t/graylog-in-docker-certificate-broken/30752/2 "2023-11-22T11:52:16Z")

</div>

I am answering my own question:

The easiest solution to solve that issue is to add a hostname to the datanode in the docker-compose.yml file of the name that was previously created dynamically and is expected by the certificate.

This solves the issue and graylog is working again.

Nevertheless it would still be interesting to know how to replace the certificate once graylog does not fire up again.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/graylog/original/3X/c/7/c7c09c6b5099570133d6502b83f50ba4430de5b6.png) [@system](https://community.graylog.org/u/system)\
**Post date:** [December 6, 2023, 11:52am UTC](https://community.graylog.org/t/graylog-in-docker-certificate-broken/30752/3 "2023-12-06T11:52:37Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
