Flink无法连接远程HTTPS协议Elasticsearch问题咨询
解决Flink Elasticsearch-7连接器HTTPS远程连接问题
当使用HTTPS连接远程Elasticsearch时,确实需要额外配置SSL相关参数——默认情况下连接器不会自动处理HTTPS的证书验证逻辑。以下是具体的解决步骤和配置示例:
必要的SSL配置参数
在你的WITH配置块中,需要添加这些关键参数:
'ssl.enabled' = 'true':明确开启SSL连接,这是HTTPS连接的基础- 如果远程ES使用自签名证书或非官方CA签发的证书,还需配置信任存储相关参数:
'ssl.truststore.path' = '/path/to/your/truststore.jks':指定存放ES证书的信任存储文件路径'ssl.truststore.password' = 'your-truststore-password':信任存储的访问密码
- 如果ES要求客户端证书认证(双向SSL),则还要添加:
'ssl.keystore.path' = '/path/to/your/keystore.jks':客户端证书存储文件路径'ssl.keystore.password' = 'your-keystore-password':客户端证书存储的访问密码
修改后的配置示例
"CREATE TABLE es_alarm (\n" + "id BIGINT PRIMARY KEY NOT ENFORCED,\n" + ") WITH (\n" + " 'connector' = 'elasticsearch-7',\n" + " 'hosts' = 'https://xx.xx.xx.xx:9200',\n" + " 'username' = 'elastic',\n" + " 'password' = 'xxxxxxxxx',\n" + " 'index' = 'alarmxxxx',\n" + " 'ssl.enabled' = 'true',\n" + " 'ssl.truststore.path' = '/opt/flink/config/elastic-truststore.jks',\n" + " 'ssl.truststore.password' = 'changeit'\n" + ")"
额外检查项
- 确认远程ES服务器的9200端口允许你的Flink集群访问(检查防火墙/安全组规则)
- 验证ES的HTTPS配置是否正常:可以用
curl -u elastic:xxxxxxxxx https://xx.xx.xx.xx:9200测试连通性 - 确保信任存储文件已放置在Flink集群所有节点的相同路径下,或使用分布式文件系统路径
内容的提问来源于stack exchange,提问作者user20934195
相关产品推荐
相关产品推荐

