Вопрос или проблема
У меня есть интернет-магазин на WordPress + WooCommerce, который размещен на управляемом хостинге. Я только что купил несанкционированный сертификат SSL для этого интернет-магазина.
Я также разрабатываю веб-приложение CherryPy на Python, которое должно использовать HTTPS для связи с WooCommerce API, чтобы обновлять инвентарь интернет-магазина.
Вот где я запутался:
Если мое веб-приложение CherryPy развернуто на виртуальном сервере (не на том, где хостится мой интернет-магазин), какой SSL-сертификат я могу/должен использовать:
- Тот, который я только что купил
- Я должен использовать самоподписанный сертификат SSL
- Развернуть приложение там, где находится мой веб-сайт + сертификат
- Развернуть мой веб-сайт на сервере VPS, где находится мое веб-приложение
Возможно, я вовсе не в том направлении?
Если имя хоста идентично — например, если сертификат, который вы только что приобрели, был для example.com
, и вы настраиваете приложение CherryPy на example.com/store
, тогда все в порядке. Не делайте самоподпись, так как издатель CA, у которого вы только что купили сертификат, приложил все усилия, чтобы не поддерживать какие-либо имена хостов, кроме того, за которое вы заплатили (исключая поддомены). Если вы планируете настроить его в другом месте, например, store.example.com
, вам нужно будет купить новый сертификат для поддомена. Вы можете использовать один и тот же сертификат на скольких угодно машинах (скорее всего), пока они доступны через одно подтвержденное имя хоста. Думаю, что ваш лучший вариант — либо перенести веб-сайт на ваш VPS для веб-приложений, как вы сказали, затем настроить дополнительный VPS, который будет посвящен маршрутизации и подписанию, либо использовать самоподписанный сертификат для использования между общим хостом и вашей основной точкой входа, и в этом случае поддержка корневого CA не имеет значения, потому что вы знаете, что можете доверять себе.
Клиент ~~ GET https://ex.com/store ~~~> VPS Общий хост
Клиент VPS ~~ GET https://store.ex.com ~~> Общий хост
Клиент VPS <~ OK (самоподписанный сертификат) ~~~~~~ Общий хост
Клиент <~ OK (сертификат CA) ~~~~~~~~~ VPS Общий хост
Что-то вроде этого, своего рода полезный MITM. Если кто-то запрашивает веб-приложение на VPS, тогда VPS может просто ответить нормально без вовлечения общего хоста.
Как и везде, эти, казалось бы, произвольные ограничения, которые вы можете снять одним взмахом вашей волшебной AmEx, не должны быть проблемой позже в этом году.
Ответ или решение
Вопрос об использовании SSL-сертификата для вашего онлайн-магазина на платформе WordPress + WooCommerce и в разрабатываемом вами веб-приложении на базе CherryPy действительно важен и имеет несколько аспектов, требующих внимательного рассмотрения.
Теория
SSL-сертификаты обеспечивают безопасность передачи данных между клиентом и сервером, посредством шифрования и удостоверения подлинности сервера. Ваша задача заключается в обеспечения безопасной связи как для вашего онлайн-магазина, так и для API-интерфейса, используемого приложением на CherryPy.
Вы приобрели не-wildcard SSL-сертификат для вашего интернет-магазина. Это значит, что данный сертификат покрывает только конкретный домен (например, example.com
) и не распространяется на субдомены (например, store.example.com
).
Пример
-
Использование существующего SSL-сертификата:
Если ваш CherryPy веб-приложение будет размещаться под тем же доменным именем, что и ваш главной сайт (например,example.com/store
), вы можете использовать приобретенный вами SSL-сертификат. Это обеспечит защиту всей коммуникации между вашим веб-приложением и сервером через HTTPS без необходимости использования дополнительного сертификата. -
Самоподписанный сертификат:
В случае использования самоподписанного сертификата для вашего CherryPy приложения (если оно расположено на другом сервере и под другим доменом, например,store.example.com
), вы можете самостоятельно гарантировать безопасность между вашими узлами. Однако тут есть важное предостережение: клиенты (и браузеры) не будут доверять этому сертификату, поскольку он не подписан признанным центром сертификации (CA). -
Миграция приложений между серверами:
В некоторых случаях целесообразно рассмотреть вопрос о размещении всех приложений на одном сервере, что упростит управление сертификатами и обеспечит единообразие конфигурации. Это можно сделать, либо перенеся веб-приложение на сервер с хостингом магазина, либо наоборот.
Применение
Для вашего случая, если CherryPy веб-приложение и онлайн-магазин будут обслуживать один и тот же домен (например, example.com
и example.com/store
), использование одного SSL-сертификата возможно и рационально.
Однако, если вы склоняетесь к размещению веб-приложения на отдельном VPS с другим доменом или субдоменом (например, store.example.com
), вам потребуется приобрести новый SSL-сертификат, предназначенный для этого субдомена.
Обратите внимание, что использование самоподписанного сертификата возможно, но только в случае если эти связи являются внутренними и вы можете быть уверены в безопасности передачи данных на инфраструктурном уровне. В иных случаях, покупка нового сертифицированного SSL или использование бесплатных услуг, таких как Let’s Encrypt, будет более логичным вариантом.
Резюмируя, учитывая вышеизложенное, ваш выбор будет зависеть от системы доменов, архитектуры вашего проекта и ваших конкретных требований безопасности. Не забывайте также учитывать возможность расширения и масштабирования вашего приложения в будущем, чтобы правильный выбор SSL-сертификата сегодня облегчал развитие вашей инфраструктуры в дальнейшем.