Перезапись 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 \. хорошо известный \ acme-challenge \ X2cp9qv-ymePYfNERRjh5n8pmxvlvWxMqZUhyaSL

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

Есть идеи?

0
задан 6 January 2018 в 07:40
1 ответ

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

Несколько причин помешают проверке домена 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>

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

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

1
ответ дан 4 December 2019 в 16:03

Теги

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