InfluxDB 2 - Running https and http concurrently

Hi,

I’m working on a Lab proof of concept project using influxdb2 @ version 2.7.10-1 and have a question regarding running http & https at the same time.

Testing steps as follows:

  1. Connect to InfluxDB GUI ON http. Read/Write data using http. (curl) - All working as expected

2a) Enable https by creating self-signed certificate, and then referencing the location of the key/cert in the config.toml file.

eg

tls-cert = “/etc/ssl/influxdb-selfsigned.crt”
tls-key = “/etc/ssl/influxdb-selfsigned.key”

2b) Perform a systemctl restart influxdb to use the new configuration.

It can now be seen to be in the journalctl log that the new configuration has taken effect.

Sep 03 12:15:25 influxdb-instance4-lab influxd-systemd-start.sh[518021]: ts=2024-09-03T11:15:25.722899Z lvl=info msg=Listening log_id=0rPuMkH0000 service=tcp-listener transport=https addr=:8086 port=8086

  1. Connect to InfluxDB GUI on https. Read/Write data using http. (curl -k) - All working as expected

My question is can one listening port be defined for http, and another one for https?

I can change the listening port by specifying a different port number by adding http-bind-address = “:8085” to the config.toml file.

It can now be seen to be in the journalctl log that the new configuration has taken effect.

Sep 03 12:25:11 influxdb-instance4-lab influxd-systemd-start.sh[518637]: ts=2024-09-03T11:25:11.703364Z lvl=info msg=Listening log_id=0rPuvyc0000 service=tcp-listener transport=https addr=:8085 port=8085

I would like to implement this dual setup so that heavy writes of data (from telegraf to InfluxDB) will be via http, sitting on a “private” network (cutting down on encryption overheads is the reasoning here)

https connections will be from API clients coming in from other networks.

Thanks

:slight_smile:

Hello @ChristLJ,
Welcome!
Yes I believe this is possible by http binding in the telegraf config with and without certs:
HTTP:

http-bind-address = ":8085"

HTTPS :
tls-cert and tls-key for HTTPS. You can also specify the default HTTPS port (e.g., port 8086):

https-bind-address = ":8086"
tls-cert = "/etc/ssl/influxdb-selfsigned.crt"
tls-key = "/etc/ssl/influxdb-selfsigned.key"