Before we dig in — could you tell me which OS and version you installed on (e.g., Ubuntu 22.04, RHEL 8/9, Amazon Linux 2023, Debian 12), plus CPU arch (x86_64/ARM) and whether these are VMs or containers?
Also, a couple of checks to pinpoint the issue:
Exact installation path & commands
Did you deploy directly with the wazuh-ansible repo (v4.12.0), or did you use the installer script (wazuh-install.sh) from the installation repository?
Please paste the exact commands you ran (mask any sensitive data).
If you used the installer script
Please share your config.yml (mask IPs). It should define Indexer, Server(s), and Dashboard nodes. Example with masked IPs:
nodes:
indexer:
- name: indexer-1
ip: "X.X.X.X"
server:
- name: manager-master
ip: "X.X.X.X"
node_type: master
- name: manager-worker
ip: "X.X.X.X"
node_type: worker
dashboard:
- name: dashboard
ip: "X.X.X.X"
And confirm you generated the config/certs prior to deployment (for linux users):
On the Dashboard node, please check:
Ensure it has the same API username/password you used in curl (custom-user / SecretPassword1!) and correct URL/port. For quick local testing you can set:
so the Dashboard doesn’t reject self-signed certs while we validate the rest.
sudo systemctl restart wazuh-dashboard sudo tail -n 200 /var/log/wazuh-dashboard/wazuh-dashboard.log# Test Dashboard → API from the Dashboard host
curl -u custom-user:'SecretPassword1!' -k \ 'https://127.0.0.1:55000/security/user/authenticate?raw=true'# (Optional) Verify Dashboard → Indexer connectivity
curl -k https://127.0.0.1:9200
If it still fails, please share:
OS/version/arch details,
Your masked config.yml,
The first ~200 lines of /var/log/wazuh-dashboard/wazuh-dashboard.log,
/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml (mask the password if you prefer).