Как правильно настроить HTTPS в SAFE-Stack?

Согласно документам Сатурна, чтобы иметь HSTS в Сатурне, необходимо указатьforce_ssl в application:

application {
    url ("http://0.0.0.0:" + port.ToString() + "/")
    force_ssl
    ...
}

Это работает для развернутой версии Интернета, однако мешает локальной разработке. Сервер не возвращает ответы, в лог пишетRequest redirected to HTTPS и это все.

Можно ли принудительно использовать SSL и одновременно поддерживать удобство локального разработчика?

1 ответ

Решение

SAFE-стек предполагает использование webpack а также webpack-dev-server и это работает как прокси для реального сервера, что означает, что здесь также необходимо внести некоторые изменения.

Итак, конфигурация веб-пакета теперь должна иметь https в target из proxy раздел:

devServer: {
    proxy: {
        '/api/*': {
            target: 'https://localhost:<port>',
            ...
        },
        ...
    },
    ...
},

Этого недостаточно - согласно документации, чтобы избежать исключений безопасности, нужно отключитьsecure флаг:

devServer: {
    proxy: {
        '/api/*': {
            target: 'https://localhost:<port>',
            secure: false,
            ...
        },
        ...
    },
    ...
},

И последнее - доработать сервер application соответственно:

application {
    url ("https://0.0.0.0:" + port.ToString() + "/")
    force_ssl
    ...

Это должно сделать это как для разработчиков, так и для продуктовых версий Интернета.

Другие вопросы по тегам