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

Переключение продления сертификата LetsEncrypt с dns на http

Недавно я переключился с dns-01 на тип вызова http-01 для letsencrypt, поскольку я планирую подписывать свои DNS-зоны в будущем, и поэтому автоматическое манипулирование зонами больше не требуется. С тех пор, как я внес это изменение, я больше не могу обновлять некоторые из своих зон (я предполагаю, что это те зоны, которые я изначально подписал через dns-challenge). Мои старые зоны (с первого использования - с самого начала с использованием http) работают нормально.

Чтобы прояснить ситуацию, я использую обезвоженный клиент от lukas2511. Я добавил некоторые отладочные данные, чтобы проверить, есть ли проблема в этом скрипте - но похоже, что это не так.
После запроса вызова я получаю ответ:

{
  "identifier":{
    "type":"dns",
    "value":"dennisschuerholz.de"
  },
  "status":"valid",
  "expires":"2017-04-16T11:43:43Z",
  "challenges":[
    {
      "type":"http-01",
      "status":"pending",
      "uri":"https://acme-v01.api.letsencrypt.org/acme/challenge/<some foo>/133324572",
      "token":"<some token>"
    },
    {
      "type":"tls-sni-01",
      "status":"pending",
      "uri":"https://acme-v01.api.letsencrypt.org/acme/challenge/<some foo>/133324573",
      "token":"<some token>"
    },
    {
      "type":"dns-01",
      "status":"valid",
      "uri":"https://acme-v01.api.letsencrypt.org/acme/challenge/<some foo>/133324574",
      "token":"<some token>",
      "keyAuthorization":"<some bar>",
      "validationRecord":[
        {
          "Authorities":[
            "dennisschuerholz.de.\t900\tIN\tNS\tns3.schuerholz.it.",
            "dennisschuerholz.de.\t900\tIN\tNS\tns1.schuerholz.it.",
            "dennisschuerholz.de.\t900\tIN\tNS\tns2.schuerholz.it.",
            "dennisschuerholz.de.\t900\tIN\tNS\tns.schuerholz.it."
          ],
          "hostname":"dennisschuerholz.de",
          "port":"",
          "addressesResolved":null,
          "addressUsed":""
        }
      ]
    }
  ],
  "combinations":[[0],[2],[1]]
}

Я действительно не понимаю, почему тип запроса DNS все еще содержит (устаревшую) информацию о домене и имеет ли к этому какое-то отношение клавиша «expires».

Если я сейчас попытаюсь ответить на вызов, статус навсегда останется в ожидании.

{
  "type":"http-01",
  "status":"pending",
  "uri":"https://acme-v01.api.letsencrypt.org/acme/challenge/<some foo>/133324572",
  "token":"<some token>"
}

Похоже, я придерживался типа вызова DNS и хотел бы знать, почему и как его отменить (если возможно). Я просто использовал тот же сценарий и домен в промежуточном пути (https://acme-staging.api.letsencrypt.org/directory), все работает нормально.

serverco от LE-сообщества объяснил мне, что происходит.

Как только домен был проверен, эта авторизация запоминается в течение определенного периода времени (в настоящее время я полагаю, 90 дней), поэтому запрос через другой тип запроса (http в вашем случае) всегда будет приводить к получению «ожидающего», если скрипт принимает во внимание "статус": "действительный". [..] обезвоженный [..] должен признать действительный статус и просто получить новый сертификат.

Я добавил патч к своей обезвоженной версии, который пропускает испытание, если оно не требуется.