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

Переписывание URL-адреса в iis из поддомена, чтобы letsencrypt нашла ключ вызова

У меня проблема с указанным выше. По сути, у меня есть webmail.domain.com, на который я использую IIS для перенаправления.

Однако, когда пришло время обновить мои сертификаты, мне нужно вручную отключить правило веб-почты, а затем запустить клиент. В противном случае он не будет обновлять сертификаты для webmail.example.com, потому что он ищет в example.com/.well-known/acme-challenge, но перенаправляется на webmail.example.com/.well-known/acme-challenge которого не существует.

Итак, я написал правило, чтобы переписать URL-адрес, чтобы все, что ищет /.well-known, было переписано как https://example.com/.well-known/acme-challenge/whateverthekeyis.

Кажется, URL-адреса переписываются правильно, но файл не обслуживается. Вот где я немного в тупике. Он отлично справляется с проблемами, если я отключу правило перезаписи (кроме правила веб-почты), поэтому я не совсем уверен, в чем проблема. В acme-challenge есть webconfig для обслуживания файлов без расширений, и я также настроил его в iis. URL-адрес кажется правильным вместе с физическим путем. Но это явно не обслуживает файл.

Я получаю ошибку 404.4 not found, когда пытаюсь получить доступ к URL-адресу, используя правило перезаписи для перезаписи, а webmail.example.com только на example.com.

Ресурс, который вы ищете, не имеет связанного с ним обработчика.

Наиболее вероятные причины:

The file extension for the requested URL does not have a handler configured to process the request on the Web server.

Запрошенный URL https://example.com:443/.well-known/acme-challenge/X2cp9qv-ymePYfNERRjh5n8pmxvlvWxMqZUhyaSL

Физический путь C: \ inetpub \ wwwroot \ .well-known \ acme-challenge \ X2cp9qv-ymePYfNERRjh5n8pmxvlvWxMqZUhyaSL

Но без правила перезаписи я могу получить доступ к этому URL-адресу из своего браузера.

Любые идеи?

Пожалуйста, не используйте перенаправления для папки, содержащей acme-Challenge.

Несколько причин помешают проверке домена Let's Encrypt через HTTP, если вы попытаетесь перенаправить запросы так, как вы намереваетесь:

  1. Вы хотите проверить конкретный домен. Перенаправление на другой предотвратит проверку.
  2. Перенаправление на / принудительное использование HTTPS предотвратит проверку. Бот-валидатор будет проверять только через HTTP.
  3. Каждое перенаправление будет препятствовать проверке. Бот не следует перенаправлениям.

Я рекомендую следующий IIS web.config для папки acme-challenge, если вы установили модуль перезаписи. Он отключает перезапись / перенаправление для этой папки, добавляет mimetype для файлов без расширений и обеспечивает использование обработчика статических файлов:

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
   <system.webServer>
     <staticContent>
         <mimeMap fileExtension="." mimeType="text/plain" />
     </staticContent>
     <handlers>
         <clear />
         <add name="StaticFile" path="*" verb="*" type=""
                 modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"
                 scriptProcessor="" resourceType="Either" requireAccess="Read"
                 allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
     </handlers>
    <rewrite>
        <rules>
            <clear />
        </rules>
    </rewrite>
  </system.webServer>
</configuration>

Для серверов без модуля перезаписи вы можете пропустить <rewrite> раздел.

Надеюсь это поможет. Удачи!