maplibre / martin

Blazing fast and lightweight PostGIS, MBtiles and PMtiles tile server, tile generation, and mbtiles tooling.
https://martin.maplibre.org
Apache License 2.0
2.24k stars 210 forks source link

https mixed content errors #666

Open boydx opened 1 year ago

boydx commented 1 year ago

First off, this is an amazing library. I created a local server and was able to quickly start visualizing large datasets with MapLibre GL JS in-house. The repo documentation was excellent in getting this done.

When I tried this on a public-facing site with an SSL certificate, the Martin tileset server uses HTTP and is blocked by the browser.

My public setup uses a Digital Ocean droplet with a Let's Encrypt SSL certificate. PostgreSQL uses these certificates, and Martin is able to connect to the database using the ssl_cert in the config options and ?sslmode=require in the connection string.

I can get a list of sources at http://domain.org:3000/catalog, and the tilesets can be accessed at http://domain.org:3000/{table_name}.

However, if I try to access these over HTTPS, the browser returns an ERR_SSL_PROTOCOL_ERROR. If I use HTTP, it's a Mixed Content error.

Hopefully, I'm missing something simple here. Any insight would be greatly appreciated. If this issue can be explained in the docs, I'd be happy to submit a PR.

nyurik commented 1 year ago

Hi @boydx, it clearly sounds like something unrelated to Martin itself - as we never have handled HTTPS traffic. I am sure Actix lib could be made to handle the TLS termination properly, but this is outside of the scope for Martin itself, at least for now. Most of the time, these tasks are done with NGINX wrapper, or some other such mechanism.

P.S. You got a great issue number for this one :)