Вопрос или проблема
Мы разработали мобильное приложение, используя плагин JSON API.
Текущий сайт работает по протоколу HTTP, мы планируем перейти на HTTPS.
В настоящее время мобильные пользователи на работающем приложении находятся на HTTP; если мы изменим сайт на HTTPS, то приложение не будет работать, поэтому нам придется опубликовать новое приложение для работы на HTTPS, но тогда старое приложение не будет работать, и мы не можем заставить пользователя обновить приложение до последней версии.
У нас есть решение, но мы не знаем, как его реализовать: сделать сайт на HTTPS и чтобы только плагин JSON API работал на HTTP и HTTPS. Как мы можем это сделать?
Вы можете обслуживать свой сайт как по протоколу http, так и по https. Это может быть проблемой, если вы заботитесь о SEO (дублированный контент).
Вы можете использовать 301 редирект, чтобы заставить пользователей перенаправляться с http на https. Старое приложение будет немного медленнее из-за редиректа, но будет работать. Это может быть проблемой, если вы используете POST-запросы. Существует 307 редирект, но у меня нет опыта с ним.
Протокол HTTP или HTTPS не должен иметь значения. Вы должны настроить свой веб-сервер так, чтобы он “вызывал” стек WordPress для запросов по обоим протоколам к домену, и этого должно быть достаточно (и это должно быть чем-то вроде стандартного и рекомендуемого способа во всех соответствующих учебниках по веб-серверу).
Вы все равно можете изменить URL вашего сайта на HTTPS, и это в основном перенаправит весь трафик на фронтенд-страницы на HTTPS, но не должно повлиять на REST API.
Ответ или решение
Использование JSON API через HTTPS и HTTP
Ситуация, описанная в вашем вопросе, подчеркивает важность настройки безопасности на веб-сайте, особенно когда речь идет о мобильных приложениях, использующих API. В данном случае, вы имеете мобильное приложение, разработанное с использованием плагина JSON API для WordPress, и планируете перейти на HTTPS, одновременно желая поддерживать работу устаревшего приложения на HTTP.
Проблема
Когда вы перенесете свой сайт на HTTPS, старое мобильное приложение, использующее HTTP, перестанет корректно работать, так как запросы к JSON API будут отклоняться из-за несоответствия протоколов. Это может создать сложную ситуацию, особенно если вы не можете принудить пользователей обновить приложение.
Решение
-
Настройка веб-сервера:
- Настройте ваш веб-сервер так, чтобы он обслуживал запросы как по HTTP, так и по HTTPS. Это можно сделать, добавив соответствующие конфигурации в файл конфигурации вашего веб-сервера (например, Apache или Nginx). Ваш веб-сервер должен быть в состоянии обрабатывать оба протокола и "вызывать" стек WordPress для каждого из них.
-
Редиректы:
- После настройки веб-сервера, вы можете реализовать 301 редирект, который будет отправлять пользователей, пытающихся получить доступ к HTTP-версии вашего веб-сайта, на HTTPS-версию. Это обеспечит, что все новые запросы автоматически перенаправляются на защищенное соединение. Однако имейте в виду, что использование редиректов может замедлить работу старого приложения, так как ему потребуется сначала выполнить запрос на HTTP, а затем быть перенаправленным на HTTPS.
-
Управление POST-запросами:
- Если ваше приложение использует POST-запросы, желательно рассмотреть возможность применения 307 редиректа. Этот редирект позволяет сохранить метод (POST) и тело запроса при переходе на новый URL. Однако перед его реализацией стоит протестировать, как это будет работать с вашим существующим API.
-
Конфигурация JSON API:
- Важно убедиться, что плагин JSON API настроен на работу с запросами как по HTTP, так и по HTTPS. Вы можете проверить документацию JSON API, чтобы определить, требуются ли дополнительные конфигурации или модификации кода для обеспечения совместимости с обоими протоколами.
-
Мониторинг и тестирование:
- После применения всех изменений настоятельно рекомендуется протестировать вашу систему. Убедитесь, что оба приложения (старое и новое) могут корректно взаимодействовать с сервером. Проверьте все маршруты и методы API на корректную работу с обоими протоколами.
-
Информирование пользователей:
- Важно информировать пользователей вашего приложения о том, что будет происходить. Возможно, вам стоит предоставить инструкции по обновлению приложения и объяснить, почему это необходимо.
Заключение
Переход на HTTPS — это значимый шаг в обеспечении безопасности вашего веб-сайта и мобильного приложения. Однако, важно правильно подойти к этому процессу, чтобы избежать недоступности старой версии вашего приложения. Установка надлежащих редиректов, поддержка обоих протоколов и тестирование всех функций API — это ключевые шаги, которые помогут вам обеспечить непрерывность обслуживания ваших пользователей в переходный период.