Como redirecionar no nginx com base na localização?

0

O que eu gostaria de fazer

Eu tenho um domínio example.com , para o qual eu preciso de um certificado de cliente SSL para acessar. Isso é feito facilmente com a diretiva ssl_verify_client on; .

Alguns recursos, no entanto, devem poder ser acessados publicamente, como .well-known/acme-challenge/ exigido por Let's Encrypt ou keybase.txt do Keybase.io.

Eu fiz um pequeno gráfico ASCII para visualizar o que eu gostaria de fazer.

                    +-------------+
                    |             |
                    | example.com |
                    |             |
                    ++----------+-+
                     |          |
  Public Ressource   |          | Private Ressource
       (Whitelist)   |          | (Anything else)
                     |          |
                     v          v
+--------------------++        ++-------------------------+
|                     |        |                          |
| Normal HTTPS Server |        | Requires SSL Client cert |
|                     |        |                          |
+---------------------+        +--------------------------+

O que eu tentei até agora

Até agora, minha solução alternativa é usar registros TXT do DNS para verificar as solicitações Vamos criptografar. Isso é insatisfatório, já que atualizá-los pode demorar um pouco e, na verdade, não resolve o problema.

Minha ideia seria como definir dois servidores de back-end, que só são acessíveis por meio de conexão de soquete e, em seguida, vinculá-los por meio de location diretivas. Não sei se é possível ou não, mas a documentação do nginx não me esclareceu.

O que eu quero evitar

A sugestão padrão parece ser "Basta usar um subdomínio diferente", o que de certa forma acaba com o objetivo, pois quero usar esses recursos para autenticar este domínio e não um diferente domínio.

    
por David Stockinger 11.06.2018 / 17:41

0 respostas

Tags