Esta guía describe cómo habilitar HTTPS con InfluxDB. La configuración de HTTPS asegura la comunicación entre los clientes y el servidor InfluxDB y, en algunos casos, HTTPS verifica la autenticidad del servidor InfluxDB para los clientes.

Si planea enviar solicitudes a InfluxDB a través de una red, fuertemente recomendado que configuró HTTPS.

Requisitos

Para configurar HTTPS con InfluxDB, necesitará una instancia de InfluxDB nueva o existente y un certificado de seguridad de la capa de transporte (TLS) (también conocido como certificado de capa de sockets seguros (SSL)). InfluxDB admite tres tipos de certificados TLS / SSL:

  • Certificados de dominio único firmados por un Autoridad certificada

    Estos certificados brindan seguridad criptográfica a las solicitudes HTTPS y permiten a los clientes verificar la identidad del servidor InfluxDB. Con esta opción de certificado, cada instancia de InfluxDB requiere un certificado de dominio único único.

  • Certificados comodín firmados por una autoridad de certificación

    Estos certificados brindan seguridad criptográfica a las solicitudes HTTPS y permiten a los clientes verificar la identidad del servidor InfluxDB. Los certificados comodín se pueden utilizar en varias instancias de InfluxDB en diferentes servidores.

  • Certificados autofirmados

    Los certificados autofirmados no están firmados por una CA y puede generarlos en su propia máquina. A diferencia de los certificados firmados por una CA, los certificados autofirmados solo brindan seguridad criptográfica a las solicitudes HTTPS. No permiten que los clientes verifiquen la identidad del servidor InfluxDB. Recomendamos utilizar un certificado autofirmado si no puede obtener un certificado firmado por una CA. Con esta opción de certificado, cada instancia de InfluxDB requiere un certificado autofirmado único.

Independientemente del tipo de su certificado, InfluxDB admite certificados compuestos por un key expediente (.key) y un archivo de certificado firmado (.crt) par de archivos, así como certificados que combinan el key archivo y el archivo de certificado firmado en un solo archivo empaquetado (.pem).

Las siguientes dos secciones describen cómo configurar HTTPS con InfluxDB usando un certificado firmado por una CA y usando un certificado autofirmado en Ubuntu 16.04. Los pasos específicos pueden ser diferentes para otros sistemas operativos.

Configurar HTTPS con un certificado firmado por una CA

Paso 1: instale el certificado SSL / TLS

Coloque el privado key expediente (.key) y el archivo de certificado firmado (.crt) o el archivo empaquetado único (.pem) en el /etc/ssl directorio.

Paso 2: garantizar los permisos de archivo

Los archivos de certificado requieren acceso de lectura y escritura por parte del root usuario. Asegúrese de tener los permisos de archivo correctos ejecutando los siguientes comandos:

sudo chown root:root /etc/ssl/
sudo chmod 644 /etc/ssl/
sudo chmod 600 /etc/ssl/

Paso 3: Habilite HTTPS en el archivo de configuración de InfluxDB

HTTPS está deshabilitado de forma predeterminada. Habilite HTTPS en InfluxDB’s the [http] sección del archivo de configuración (/etc/influxdb/influxdb.conf) configurando:

  • https-enabled para true
  • http-certificate para /etc/ssl/.crt (o para /etc/ssl/.pem)
  • http-private-key para /etc/ssl/.key (o para /etc/ssl/.pem)
[http]

  [...]

  # Determines whether HTTPS is enabled.
  https-enabled = true

  [...]

  # The SSL certificate to use when HTTPS is enabled.
  https-certificate = ".pem"

  # Use a separate private key location.
  https-private-key = ".pem"

Paso 4: reinicie InfluxDB

Reinicie el proceso de InfluxDB para que los cambios de configuración surtan efecto:

sudo systemctl restart influxdb

Paso 5: verificar la configuración de HTTPS

Verifique que HTTPS esté funcionando conectándose a InfluxDB con la herramienta CLI:

influx -ssl -host .com

Una conexión exitosa devuelve lo siguiente:

Connected to https://.com:8086 version 1.x.x
InfluxDB shell version: 1.x.x
>

¡Eso es todo! Ha configurado correctamente HTTPS con InfluxDB.

Configurar HTTPS con un certificado autofirmado

Paso 1: generar un certificado autofirmado

El siguiente comando genera un privado key expediente (.key) y un archivo de certificado autofirmado (.crt) que siguen siendo válidos para el especificado NUMBER_OF_DAYS. Envía esos archivos a las rutas de archivo de certificado predeterminadas de InfluxDB y les otorga los permisos necesarios.

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/influxdb-selfsigned.key -out /etc/ssl/influxdb-selfsigned.crt -days 

Cuando ejecute el comando, le pedirá más información. Puede optar por completar esa información o dejarla en blanco; ambas acciones generan archivos de certificado válidos.

Paso 2: Habilite HTTPS en el archivo de configuración de InfluxDB

HTTPS está deshabilitado de forma predeterminada. Habilite HTTPS en InfluxDB’s the [http] sección del archivo de configuración (/etc/influxdb/influxdb.conf) configurando:

  • https-enabled para true
  • http-certificate para /etc/ssl/influxdb-selfsigned.crt
  • http-private-key para /etc/ssl/influxdb-selfsigned.key
[http]

  [...]

  # Determines whether HTTPS is enabled.
  https-enabled = true

  [...]

  # The SSL certificate to use when HTTPS is enabled.
  https-certificate = "/etc/ssl/influxdb-selfsigned.crt"

  # Use a separate private key location.
  https-private-key = "/etc/ssl/influxdb-selfsigned.key"

Paso 3: reinicie InfluxDB

Reinicie el proceso de InfluxDB para que los cambios de configuración surtan efecto:

sudo systemctl restart influxdb

Paso 4: verificar la configuración de HTTPS

Verifique que HTTPS esté funcionando conectándose a InfluxDB con la herramienta CLI:

influx -ssl -unsafeSsl -host .com

Una conexión exitosa devuelve lo siguiente:

Connected to https://.com:8086 version 1.x.x
InfluxDB shell version: 1.x.x
>

¡Eso es todo! Ha configurado correctamente HTTPS con InfluxDB.

Conecte Telegraf a una instancia segura de InfluxDB

Conectar Telegraf a una instancia de InfluxDB que usa HTTPS requiere algunos pasos adicionales.

En el archivo de configuración de Telegraf (/etc/telegraf/telegraf.conf), edite el urls ajuste para indicar https en lugar de http y cambio localhost al nombre de dominio correspondiente. Si está utilizando un certificado autofirmado, descomente el insecure_skip_verify ajuste y configúrelo en true.

###############################################################################
#                            OUTPUT PLUGINS                                   #
###############################################################################

# Configuration for influxdb server to send metrics to
[[outputs.influxdb]]
  ## The full HTTP or UDP endpoint URL for your InfluxDB instance.
  ## Multiple urls can be specified as part of the same cluster,
  ## this means that only ONE of the urls will be written to each interval.
  # urls = ["udp://localhost:8089"] # UDP endpoint example
  urls = ["https://.com:8086"]

[...]

  ## Optional SSL Config
  [...]
  insecure_skip_verify = true # <-- Update only if you're using a self-signed certificate

A continuación, reinicie Telegraf y estará listo.