Как делать post и get запросы с https на http?
Правильное решение: получить и установить таки серитиикат для своего сервера. С lets encript это быстро и бесплатно.

Костыль: поставить на сайте: <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> По сути это хак, т.к. основное предназначение этого заголовка - заставить всё работать через https, но если браузер не получает ответа по https порту - он разрешает работу по http.
Выставлять наружу NodeJS неправильно. Он для этого не предназначен.
Правильная архитектура, это когда все запросы приходят на Nginx, а уже Nginx проксирует их на NodeJS.
В Nginx надо сделать редирект с HTTP на HTTPS принудительный. Тогда все запросы будут зашифрованы.
Можно не изобретать велосипед и не возиться долго с конфигом Nginx. Для организации настройки HTTPS соединения для Nginx есть специальная библиотека которая под капотом все делает - и сертификаты выпускает, и конфиг Nginx правит и сертификаты обновляет автоматически при завершении их строка действия.
Подробнее тут: https://www.nginx.com/blog/using-free-ssltls-certi...