Я использую Caddy в качестве прокси для многих сайтов на одном сервере. Некоторые из моих сайтов не готовы к HTTPS. Я могу маршрутизировать их по HTTP нормально, но если я захожу на эти сайты с HTTPS, я получаю некрасивый ...
No such site at :443
...ошибка. Как я могу использовать Caddy для перенаправления на HTTP вместо этого?
Это работает, но дает мне ошибку:
siteCanHandleSSL.com {
proxy / 123.123.123.123:80 {
transparent
}
tls my@email.addy {
dns route53
max_certs 200
}
}
http://siteCantHandleSLL.com {
proxy / 123.456.654.321:80 {
transparent
}
tls off
}
Это дает мне другую ошибку:
siteCanHandleSSL.com {
proxy / 123.123.123.123:80 {
transparent
}
tls my@email.addy {
dns route53
max_certs 200
}
}
https://siteCantHandleSLL.com {
redir http://{host}{uri}
tls off
}
http://siteCantHandleSLL.com {
proxy / 123.456.654.321:80 {
transparent
}
tls off
}
❯ локон https://surrain.com curl: (60) Проблема с сертификатом SSL: неверная цепочка сертификатов Подробнее здесь: https://curl.haxx.se/docs/sslcerts.html
curl по умолчанию выполняет проверку сертификата SSL, используя «связку» открытых ключей центра сертификации (CA) (сертификаты CA). Если файл пакета по умолчанию не подходит, вы можете указать альтернативный файл с помощью параметра --cacert. Если этот HTTPS-сервер использует сертификат, подписанный ЦС, представленным в комплекте, проверка сертификата, вероятно, не удалась из-за проблемы с сертификатом (срок его действия может истек или имя может не совпадать с именем домена в URL-адресе). Если вы хотите отключить проверку сертификата с помощью curl, используйте параметр -k (или --insecure).
~ ❯ curl -k https://surrain.com Нет такого сайта на: 443%
Чтобы установить действительное SSL-соединение с доменом, сервер должен иметь действующий сертификат для этого домена. В противном случае вы получите сообщение об ошибке о недействительном сертификате.
Если вы хотите перенаправить с HTTPS на HTTP, вам нужен действующий сертификат. Это связано с тем, что SSL ниже HTTP, и ответ перенаправления HTTP отправляется после установки действительного SSL-соединения.
Лучшее, что вы можете сделать, - это разместить домены только для HTTP на сервере, у которого нет сервера, который прослушивает порт SSL. Это означает, что вам нужен отдельный сервер для ваших HTTPS / HTTP и простых HTTP-сайтов.