Esta é uma instalação ELK bastante nova. Instalei originalmente a v7.x porque pensei erroneamente que era necessária; mas depois atualizado editando o URL de origem do Elastic PPA. A atualização usando o apt ocorreu sem erros.
Tive que ajustar algumas configurações no arquivo elasticsearch.yml (trocar 'http' por 'transport'):
ALCE 7:
xpack.security.http.ssl.enabled: 'true'
xpack.security.http.ssl.verification_mode: 'none'
xpack.security.http.ssl.certificate_authorities: /etc/elasticsearch/certs/ca/ca.crt
xpack.security.http.ssl.key: /etc/elasticsearch/certs/netflow/netflow.key
xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/netflow/netflow.crt
ALCE 8:
xpack.security.transport.ssl.enabled: 'true'
xpack.security.transport.ssl.verification_mode: 'none'
xpack.security.transport.ssl.certificate_authorities: /etc/elasticsearch/certs/ca/ca.crt
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/netflow/netflow.key
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/netflow/netflow.crt
No ELK 7. Isso funcionou perfeitamente. No ELK 8. Agora produz um erro da biblioteca OpenSSL vinculada ao curl:
# curl -v --cacert /etc/elasticsearch/certs/ca/ca.crt -u elastic:PASSWORD https://127.0.0.1:9200
* Trying 127.0.0.1:9200...
* Connected to 127.0.0.1 (127.0.0.1) port 9200 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/elasticsearch/certs/ca/ca.crt
* CApath: /etc/ssl/certs
* OpenSSL/3.0.13: error:0A00010B:SSL routines::wrong version number
* Closing connection 0
curl: (35) OpenSSL/3.0.13: error:0A00010B:SSL routines::wrong version number
[Exit 35 ]
A primeira pergunta que devo fazer é o que o erro realmente significa? Versão errada de quê? (meu melhor palpite foi a versão SSL)
Tentei adicionar --ssl2, --ssl3, --tls-max 1.0, --tls-max 1.1, --tls-max 1.2 e --tls-max 1.3; mas não fez diferença.
Então Steffen está correto. Não havia SSL algum. Após atualizar de 7.x para 8.x, o elasticsearch falhou ao iniciar e encontrei a seguinte mensagem de erro no log:
Ao seguir os links (há um segundo link a seguir: Configure a segurança básica para o Elastic Stack ), você encontrará instruções para usar 'transport` em vez de 'http' na configuração (como fiz acima). Não tenho certeza do que isso realmente faz, mas desativa o SSL na conexão padrão da porta 9200 com o Elasticsearch.
A solução correta para mim em resposta ao erro "Transport SSL must be enabled" foi restaurar o "http" em vez de "transport" e adicionar a linha: