Eu tenho trabalhando Nginx com autenticação TLS com a seguinte configuração. Todas as solicitações com certificados de cliente válidos serão encerradas no Nginx e a solicitação será encaminhada para o aplicativo de back-end.
upstream app {
server app:8080;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/ssl/cert_example_com.crt;
ssl_certificate_key /etc/ssl/cert_example_com.key;
ssl_client_certificate /etc/ssl/ca.crt;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_client on;
location / {
proxy_pass http://app;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Com essa configuração, quero que o Nginx autentique apenas determinados certificados de cliente. Isso ocorre porque estou usando o Private RootCA para gerar certificados Tipo A e certificados Tipo B. Os certificados do tipo A são usados com MQTT para autenticação e os certificados do tipo B são usados para HTTPS
autenticação do Nginx ( ).
certificado de cliente (Tipo A) para MQTT será exclusivo para cada cliente <UUID>.example.com
. o certificado do cliente (Tipo B) para Nginx terá nome (DN) base.example.com
e o certificado será compartilhado entre vários clientes. Além disso, haverá um número limitado de certificados Tipo B ativos ao mesmo tempo com o mesmo nome (DN) base.example.com
e ID de certificado diferente.
qualquer ajuda sobre isso como eu posso conseguir isso?
Todos os certificados serão validados, mas você ainda poderá rejeitar solicitações de conexões usando os outros certificados verificando o DN do certificado do cliente.
Por exemplo: