Am o flotă de computere Ubuntu edge care găzduiesc servere HMI web simple. Mulți se află în spatele IP-urilor dinamice unde redirecționarea portului nu este disponibilă.
Deci, pentru a le accesa fiecare folosește autossh pentru a crea un tunel invers într-un server proxy cloud central. Apoi pot accesa fiecare cu https://proxy.mydomain.com:6001, 6002 etc. Acest lucru funcționează.
Acum vreau să folosesc NGINX, astfel încât să nu fie nevoie să ne amintim numerele de port. Deci, fiecare unitate ar avea propriul subdomeniu: https://site1.mydomain.com, site2, etc. Toate subdomeniile ar indica serverul meu proxy. NGINX ar trebui apoi să se uite la subdomeniu și să transmită traficul https către portul de tunel invers corespunzător.
Configurația NGINX este afișată mai jos.
Problema mea în acest moment este că NGINX vrea să definesc un certificat SSL. Cu toate acestea, aș dori să folosesc certificatele deja instalate pe fiecare dintre computerele edge.
Deci, cum aș proceda pentru a transmite acele certificate prin proxy-ul NGINX către client?
Dacă acest lucru nu este posibil - care este cel mai bun mod de a defini unul sau certificate separate pe serverul proxy care pot fi utilizate pentru toate subdomeniile?
Server {
asculta 443 ssl;
nume_server site1.mydomain.com;
Locație / {
proxy_set_header Gazdă $gazdă;
proxy_pass https://127.0.0.1:6001;
proxy_ssl_server_name activat;
proxy_redirect dezactivat;
}
}
Server {
asculta 443 ssl;
nume_server site2.mydomain.com;
Locație / {
proxy_set_header Gazdă $gazdă;
proxy_pass https://127.0.0.1:6002;
proxy_ssl_server_name activat;
proxy_redirect dezactivat;
}
}
ACTUALIZAȚI
Pentru cei curioși, am putut să folosesc proiectul „SNIProxy” în loc de NGINX și am rezolvat această problemă. Certificatele HTTPS au trecut fără probleme.