30. VMAuth. Включение TLS


1. Изменения в опциях запуска vmauth

  1. Так как vmauth не умеет перечитывать новые TLS-ключи по сигналу HUP, то добавьте во «вспомогательный скрипт» /usr/local/lib/certmonger/vip-after-savecert, автозапускаемый после получения нового сертификата, команду systemctl restart vmauth.

  2. В файле /etc/sysconfig/vmauth, в опции httpListenAddr, измените номер порта 8427 на 443:

    sed -i 's/^httpListenAddr=:8427/httpListenAddr=:443/' /etc/sysconfig/vmauth
  3. Добавьте в файл /etc/sysconfig/vmauth опции, отвечающие за включение TLS:

    cat << EOF >> /etc/sysconfig/vmauth
    ## Enable TLS for incoming HTTP requests.
    tls=true
    tlsMinVersion=TLS13
    tlsCertFile=/etc/pki/tls/certs/http.crt
    tlsKeyFile=/etc/pki/tls/private/http.key
    
    EOF


2. Изменения в конфигурационном файле

  1. Измениие http на https в блоке запроса проверки сервиса:

    • Скрипт

    • Результативный файл

    sed -i '|s|url_prefix: "http://127.0.0.1:8426/-/ready"|url_prefix: "https://127.0.0.1:8426/-/ready"|' /etc/victoriametrics/vmauth.yml
    unauthorized_user:
      url_prefix: "https://127.0.0.1:8426/-/ready"
      tls_insecure_skip_verify: true


3. Перезапуск vmauth

  1. Выполните перезапуск сервиса:

    systemctl restart vmauth
  2. Проверьте журнал:

    journalctl -u vmauth --no-pager -o cat -n
    Ожидаемый вывод:
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/lib/logger/flag.go:20     -tls="true"
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/lib/logger/flag.go:20     -tlsCertFile="/etc/pki/tls/certs/http.crt"
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/lib/logger/flag.go:20     -tlsKeyFile="secret"
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/lib/logger/flag.go:20     -tlsMinVersion="TLS13"
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/app/vmauth/main.go:95   starting vmauth at "[:443]"...
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/app/vmauth/auth_config.go:691   loaded information about 0 users from -auth.config="vmauth.yml"
    2025-02-21T07:45:04.655Z        info    VictoriaMetrics/app/vmauth/main.go:113  started vmauth in 0.000 seconds
    2025-02-21T07:45:04.656Z        info    VictoriaMetrics/lib/httpserver/httpserver.go:169        started server at https://127.0.0.1:8426/
    2025-02-21T07:45:04.656Z        info    VictoriaMetrics/lib/httpserver/httpserver.go:171        pprof handlers are exposed at https://127.0.0.1:8426/debug/pprof/
    2025-02-21T07:45:04.656Z        info    VictoriaMetrics/lib/httpserver/httpserver.go:169        started server at https://0.0.0.0:443/


4. Проверка https

Так как в локальном tls-сертификате может отсутствовать dns-имя текущей машины, то при проверке curl’ом используем опцию -k, --insecure.
  1. Выполните проверку готовности сервиса:

    curl -k https://mon-vmauth01p.example.org
    Ожидаемый вывод:
    VictoriaMetrics is Ready.
  2. Выполните проверку возвращаемого HTTP-кода:

    curl -ik https://mon-vmauth01p.example.org
    Ожидаемый вывод:
    HTTP/1.1 200 OK
    Content-Length: 26
    Content-Type: text/plain; charset=utf-8
    Date: Fri, 21 Feb 2025 07:55:06 GMT
    Vary: Accept-Encoding
    Vary: Accept-Encoding
    X-Server-Hostname: mon-vmauth01p.example.org
    X-Server-Hostname: mon-vmauth01p.example.org
    
    VictoriaMetrics is Ready.