Перенаправьте некоторый трафик HTTPS на HTTP в Caddy

Я использую Caddy в качестве прокси для многих сайтов на одном сервере. Некоторые из моих сайтов не готовы к HTTPS. Я могу маршрутизировать их по HTTP нормально, но если я захожу на эти сайты с HTTPS, я получаю ужасную ...

Нет такого сайта по адресу: 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
}

❯ curl 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%

1
задан 15 March 2017 в 18:36
1 ответ

Чтобы установить действительное SSL-соединение с доменом, сервер должен иметь действительный сертификат для этого домена. В противном случае вы получите сообщение об ошибке насчет недействительного сертификата.

Если вы хотите переадресоваться с HTTPS на HTTP, вам нужен действующий сертификат. Это происходит потому, что SSL ниже HTTP, и ответ HTTP перенаправления отправляется после установки действительного SSL соединения.

Лучшее, что вы можете сделать, это разместить HTTP домены только на сервере, на котором нет сервера, прослушивающего SSL-порт. Это означает, что вам нужен отдельный сервер для ваших HTTPS/HTTP и обычных HTTP сайтов

.
0
ответ дан 4 December 2019 в 05:07

Теги

Похожие вопросы