You need to be configuring Prometheus to scrape each machine separately, not via a load balancer. If you use a load balancer you just get a single instance inside Prometheus with a fairly useless mix of data from different backend servers.
For your second approach, which is talking to each server individually (you can use IP addresses or DNS names if they exists, as well as other more dynamic service discovery methods), you can enable HTTPS if you wish. On the Prometheus end you just need to set the scheme to https. On the exporter side you have various options.
You could use some form of TLS offloading proxy (such as Nginx) that talks to the exporter locally over HTTP and exposes an encrypted endpoint to be scraped. Some exporters also have native HTTPS support, such as the TLS options for the node exporter: GitHub - prometheus/node_exporter: Exporter for machine metrics