По дефолту браузеры делают юзают http и потом если сатй перенаправит на https URL или будет юзать HSTS то протокол поменяеться на https. Так вот, все же поменяеться он лишь после первого запроса который не будет безопасным. Как тогда и его сделать безопасным можно?
Очевидно, что при первом (небезопасном) запросе, сервер ещё ничего о нём не знает. Следовательно не может повлять на его безопасность. Вот когда уже получит - выполнит редирект на https. Следовательно исходя из постановки задачи - ответственным за безопасность первого запроса должен быть клиент (браузер).
Редирект выполняется с помощью кодов HTTP. Например, 301.
Можно заставить свой веб-сервер (те же самые nginx/apache) всегда редиректить на HTTPS.
Либо, клиент может заставить браузер по умолчанию слать запросы в https