Если установка соединения через имя хоста-вместо IP - адреса, кажется , от чтения на вопрос здесь , что проблема Logstash теперь требует сертификат SSL для хоста , чтобы иметь CN (общее название) набор, а также генерации SSL без -batch
флага:
Разобрался с проблемой - похоже, теперь нужно генерировать SSL-сертификат по-другому. Он должен включать «общее имя» (т. Е. Имя хоста вашего сервера). В моем случае я просто сбросил флаг -batch
при генерации сертификата, в результате чего openssl запросил у меня имя хоста.
Команда будет выглядеть примерно так из командной строки любого компьютера с установленным OpenSSL:
openssl req -x509 -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt
logstash-forwarder.key
и logstash-forwarder.crt
могут быть изменены, чтобы соответствовать вашему имени хоста, если вы хотите. Когда вы выполните эту команду, вы увидите что-то вроде этого:
Generating a 2048 bit RSA private key
.............................................+++
..........+++
unable to write 'random state'
writing new private key to 'logstash-forwarder.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:Brooklyn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Some Company
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:my_hostname.local
Email Address []:
И то, что я ввел для этого примера, было следующим; самый важный пункт - «Общее имя» (CN)
- Название страны: США
- Название штата или провинции: Нью-Йорк
- Название населенного пункта: Brooklyn
- Название организации: Некоторая компания
- Название подразделения организации: [Я специально оставил это поле пустым.]
- Общее имя: my_hostname.local
- Адрес электронной почты: [Я специально оставил это поле пустым.]
Мне лично нравится вводить название страны, штата и населенного пункта, поскольку это помогает мне разобраться в этих вещах, но на самом деле это просто глазурь на торте. Сам «торт» - это имя хоста: my_hostname.local
.
Теперь это решение работает для соединений через имя хоста. Если на компьютере, с которым у вас возникла проблема, нет имени хоста, его следует настроить. Или, возможно, его следует установить в /etc/hosts
на подключающемся компьютере, чтобы как минимум «обмануть» настройку использования имени хоста.
Пользователь в этом отчете о проблеме опубликовал хороший скрипт для создания самозаверяющего сертификата для использования IP-адреса, который находится здесь, но также должен быть способ обработки этого непосредственно из командной строки. И, глядя на этот сайт, кажется, что проблема заключается в том, как настроить запросы SSL с SubjectAltName
при использовании OpenSSL.