Minha pergunta é a seguinte: preciso organizar algum tipo de autorização entre o servidor http e o cliente, desde que eu não tenha acesso à configuração deles. Isso precisa ser o mais simples possível porque acontece dentro do ambiente uC, então a memória é preciosa. Decidi colocar um proxy nginx rev na frente do servidor http (pois posso fazer isso em um PC separado) com autorização BASIC necessária para um local que preciso, mas infelizmente não consigo descobrir como fazer isso com um cliente que é de código fechado e não pode executá-lo imediatamente. Eu estava pensando em algum tipo de túnel com o utilitário socat sem nenhuma criptografia de qualquer tipo. Se ao menos eu pudesse canalizar o socat para um túnel e o utilitário curl para autorização básica - mas não sei como fazer isso. Sinto que o socat deve fornecer dados para o curl , mas como configurar tudo junto? Ou é o caminho completamente errado? Obrigado.
Criar seu próprio proxy usando curl e socat é definitivamente a abordagem errada.
Entretanto, além disso, sua pergunta não deixa claro o que você está tentando alcançar.
Você quer dizer isso?
o servidor de origem já aplica autenticação básica e você quer tornar isso transparente?
o servidor de origem NÃO requer nenhuma autenticação, mas você quer adicionar esse requisito? (aqui estão os dragões: você precisa de medidas adicionais para impedir o acesso direto, ignorando qualquer coisa que você colocar em prática)
Mais alguma coisa?
Para os primeiros 2 cenários acima, o nginx seria minha ferramenta preferida aqui. O segundo deles simplesmente requer um
proxy_set_header Authorization Basic....
. O primeiro, algo como:Existem várias ferramentas disponíveis para criar o arquivo userauth - a mais simples é provavelmente usar o executável htpasswd do pacote apache-utils.
Se isso não funcionar, publique detalhes dos arquivos de configuração e o que realmente aconteceu (cabeçalhos http, entradas de arquivo de log) como uma nova pergunta.