Для получения корректного сертификата на Windows можно использовать Caddy в роли реверс-прокси. Он сам в автоматическом режиме получает и продлевает SSL-сертификат и отвечает по https на 443 порту, пробрасывая запросы к web-service по http.
test на домене club-is.ru (у клуба будут свой домен и хост с другим названием).C:\Caddy.caddy_windows_amd64.exe в созданную папку C:\Caddy.sc.exe create caddy start= auto binPath= "C:\Caddy\caddy_windows_amd64.exe run --config C:\Caddy\Caddyfile"
caddy на вкладке «Восстановление» для всех 3 сбоев поставьте «Перезапуск службы».В папке C:\Caddy создайте файл Caddyfile:
test.club-is.ru {
reverse_proxy localhost:8080 {
header_up X-Real-IP {remote_host}
}
}
test.club-is.ru нужно заменить на ваше зарегистрированное доменное имя, а 8080 — на порт http, на котором работает ваша web-service.
По умолчанию Caddy принимает HTTPS на порту 443. Если на площадке нужен другой внешний порт (например, из соображений безопасности или из-за ограничений сети), укажите его в адресе сайта после имени хоста через двоеточие:
test.club-is.ru:8443 {
reverse_proxy localhost:8080 {
header_up X-Real-IP {remote_host}
}
}
В этом примере Caddy отвечает по HTTPS на порту 8443, а запросы проксирует на локальный web-service на порту 8080.
Дополнительно:
https://test.club-is.ru:8443/.Caddy получает SSL-сертификат для доменного имени, указанного в Caddyfile (например, test.club-is.ru), а не для IP-адреса сервера. Снаружи сайт отвечает по HTTPS только при обращении по этому домену.
Обращение по IP-адресу — например, https://90.188.3.255:8443/ — не поддерживается, даже если порт проброшен и служба Caddy запущена.
Если ранее внешние интеграции были настроены на URL с IP-адресом и HTTPS — например, https://90.188.3.255:8443/api/... — после перехода на Caddy такие обращения перестанут работать. Нужно перенастроить интеграции на доменное имя площадки, например https://test.club-is.ru:8443/api/... (с портом, если он нестандартный) или https://test.club-is.ru/api/... (если используется порт 443).
Проверьте и обновите адреса в:
На DNS должна быть настроена A-запись с доменом площадки на IP сервера.
На одной машине один TCP-порт может прослушивать только одна программа. Если и Caddy, и web-service настроены на один и тот же порт (чаще всего 80 или 443), вторая служба не запустится или будет работать с ошибками.
При схеме с Caddy порты разделяются так:
Caddyfile) и для получения сертификата — по HTTP на порту 80.reverse_proxy.Проверьте настройки службы web-service: порт в службе и порт в reverse_proxy должны совпадать, но не должны совпадать с портами, на которых слушает Caddy (80, 443 или нестандартный HTTPS-порт из Caddyfile).
Типичная ошибка: web-service настроен на https и порт 443, а Caddy тоже занимает 443. Выберите одну схему — либо HTTPS напрямую в web-service (см. статью), либо HTTPS через Caddy, а web-service оставьте на http по отдельному порту.
Через стандартную оснастку Windows «Службы» (services.msc) запустите службу (или перезапустите, если на предыдущих этапах случайно запустили).