Q:

Is it correct to use Nginx with elasticsearch as reverse-proxy for https? 

A simple question, i have a cluster of 10 node, currently i provide all node in the configuration for my js client, if i use https, i will lose the ability to query all node because i want to use a reverse proxy for one node only.  Is it correct?  I dont found any documentation about that. 
I have already try shield or something like that, but it's like it's overkill i dont want to have ssl between nodes, i just want to have a front with https. 
{
 "name" : "node_01",
 "cluster_name" : "*****",
 "cluster_uuid" : "*****",
 "version" : {
  "number" : "5.4.1",
  "build_hash" : "2cfe0df",
  "build_date" : "2017-05-29T16:05:51.443Z",
  "build_snapshot" : false,
  "lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}

A:

Using a reverse proxy for TLS termination is a valid solution.  Since Elasticsearch only needs HTTP it's very easy to proxy. 
However you probably want to use more than one nginx instance on more than one host; otherwise you'll have a single point of failure.  You could do something like this:

Use 3 nodes for communication with your client.  Only allow Elasticsearch's HTTP access on port 9200 from localhost and proxy it through nginx running on the same host.  Let nginx terminate the TLS connection and accept connections from your client.  Allow Elasticsearch's transport protocol access on port 9300 only for all 10 Elasticsearch nodes. 
On the remaining 7 Elasticsearch nodes, don't allow any HTTP access and only allow the transport protocol for the other Elasticsearch nodes. 

PS: If you are running on AWS (or a similar service): Use an ELB to terminate TLS for you and keep your 10 nodes behind it.