Назад | Перейти на главную страницу

SSL Certbot в домене с 301 редиректом и nginx

У меня дома есть один сервер, работающий с динамическим доменом (mydomain.ddns.net) через мой маршрутизатор OpenWRT. Теперь я хочу разместить веб-сайт, купил домен (www.mynewdomain.com) в GoDaddy и настроил перенаправление 301 с маскированием (чтобы люди продолжали видеть www.mynewdomain.com вместо mydomain.ddns.net) .

Проблема в том, что когда я запускаю команду sudo certbot --nginx, она может проверить mydomain.ddns.net, но не www.mynewdomain.com, потому что «У клиента недостаточно авторизации :: Недействительный ответ от www.mynewdomain.com/. . хорошо известный / acme-challenge ... '

Я искал и пробовал разные вещи, большинство из которых связано с этим фрагментом кода:

location ~ /.well-known {
    default_type "text/plain";
    root /var/www/html;
}

Но это не работает. Видимо потому, что в этих решениях не учтено, что я под маской 301 редирект. Кто-нибудь может мне помочь? Заранее спасибо.

Есть некоторые вещи, которые не объясняются в формулировке ситуации, поэтому я попытаюсь объяснить, как это должно быть, а затем вы можете задать дополнительные вопросы или рассказать мне более подробную информацию, чтобы я мог объяснить.

  1. У Godaddy есть сервер с nginx? если да, то для домена www.mynewdomain.com Лучше всего получить сертификат там, где указан домен. Let's encrypt не может выдать сертификат для сервера, отличного от того, на который указывает домен, без внесения некоторых «специальных изменений в DNS или HTTP-контент». Это сделано из соображений безопасности. Если вам нужно сгенерировать сертификат на сервере A для сервера B, вам нужно использовать ручной режим. Минусы ручного процесса в том, что все должны делать вы.
  2. Если у вас нет сервера в Godaddy, объясните, и я вернусь к вам, если я узнаю об этом. Чтобы создать SSL-код для godaddy из дома, вы можете сделать следующее:

    certbot -d mynewdomain.com --manual --preferred-challenges dns certonly

Тогда он даст вам такой вывод

Please deploy a DNS TXT record under the name
_acme-challenge.mynewdomain.com with the following value:

IzH_mRZS7DsUxW1UdWjVWihMetUoLEROLHnGzHnTJ34

Before continuing, verify the record is deployed.

Затем в DNS создайте запись:

_acme-challenge.mynewdomain.com 300 IN TXT "IzH_mRZS7DsUxW1UdWjVWihMetUoLEROLHnGzHnTJ34"

Это позволит вам сгенерировать файлы сертификатов. Который должен быть загружен на устройство Godaddy. Если приложение godaddy не поддерживает завершение SSL, вам нужно другое решение.

  1. Другая проблема - как передать запросы в mydomain.ddns.net сервер. Если вы все же будете передавать запросы по http, проблем не возникнет, но люди могут более или менее легко атаковать вас с человеком посередине. Поэтому, если безопасность имеет первостепенное значение, не используйте этот метод, если у вас нет какой-либо формы VPN от дома до сервера Godaddy. Если вы хотите передать https на бэкэнд (mydomain.ddns.net), то вам нужно решить еще одну проблему, потому что вы уже распаковали https на www.mynewdomain.com. Здесь вам понадобится "Upstream SSL", вы можете проверить это документы.

То, что я только что написал, не объясняет конкретных деталей с конфигурациями и т. Д., Потому что мне нужно больше деталей о ситуации и о том, чего вы действительно хотите. Надеюсь, это поможет, но если это не то, что вы хотели, пожалуйста, более подробно объясните, какие настройки у вас есть. Какие бывают разные точки доступа, текущие конфигурации, как вы хотите их настроить (где должен быть ssl, а где нет) и т. Д.