Ошибка "Cannot GET /" возникает из-за неправильного использования метода `res.sendFile`. В вашем коде вы передаете параметры в неправильном порядке. Метод `sendFile` принимает путь к файлу как первый аргумент и опции как второй аргумент (или просто объект опций, если они нужны), но в вашем случае вы передаете `__dirname` как первый аргумент и `'/index.html'` как второй, что неправильно.
Вам нужно использовать `path.join`, чтобы правильно сформировать путь к файлу. Вот исправленный обработчик:
```javascript
const path = require('path');
// ... ваш код
app.get("/", function(req, res){
res.sendFile(path.join(__dirname, 'index.html'));
});
// ... остальной ваш код
```
Теперь браузер должен корректно находить и загружать файл `index.html`, если он находится в одной папке с вашим серверным кодом.
Что касается предупреждения о том, что HTTPS не защищен, это может быть связано с тем, что вы используете самоподписанный сертификат. Браузеры не доверяют этим сертификатам по умолчанию. Чтобы обойти это во время разработки, вы можете добавить исключение в браузере, но для производственной среды вам потребуется использовать сертификационный центр (CA), чтобы получить действительный сертификат.
Если вы хотите подписать свой собственный сертификат для разработки, вы можете сделать это с помощью OpenSSL с использованием команды:
```bash
openssl req -nodes -new -x509 -keyout server.key -out server.pem
```
Эта команда создаст самоподписанный сертификат, когда вы ответите на вопросы, которые будут заданы в терминале. Сертификат будет действовать только для тестирования и разработки. Для настоящего использования вам нужно будет получить сертификат от доверенного CA, что обычно делается через использование таких провайдеров, как Let's Encrypt, Comodo или других.
Надеюсь, это поможет вам решить ваши проблемы! Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать.