Certificati SSL multipli con il proxy inverso Squid

Ho aggiornato la mia networking utilizzando un proxy inverso di apache (non abbastanza potente) a un proxy Squid configurato solo per uso inverso.

Il mio proxy di squid è su un CentOS 6 VM e attualmente funziona accanto al mio proxy preesistente apache, quindi ho ancora il calamaro in esecuzione sulla port 3128.

  • Nginx: intestazione striscia su HTTP, aggiungere intestazione su HTTPS
  • nohup - nessun file o directory del genere
  • Posso utilizzare Active Directory come CA per la creazione di certificati SSL per IIS?
  • Come elencare tutti i nomi utente FTP usando SSH
  • Rete di base: Centos Server Router + Ubuntu Client setup .. imansible accedere al mondo esterno dal client
  • Loop senza fine di reindirizzamento con sito AWS ELB e wordpress utilizzando il plugin https di wordpress
  • Ho questa configuration nel mio /etc/squid/squid.conf,

    http_port 3128 accel vhost visible_hostname squid cache_peer 192.168.0.13 parent 80 0 no-query originserver name=server1 cache_peer_domain server1 www.server1.com server1.com cache_peer 192.168.0.14 parent 80 0 no-query originserver name=server2 cache_peer_domain server2 www.server2.com server2.com cache_peer 192.168.0.15 parent 80 0 no-query originserver name=server3 cache_peer_domain server3 www.server3.com server3.com http_access allow all 

    Questo funziona perfettamente per tutte le connessioni HTTP.

    Dirige

     www.server1.com:3128 

    a

     192.168.0.13:80 

    Ho cercato di implementare i cert SSL per due dei tre domini. Ieri sera sono riuscito a get una configuration di successo per una connessione HTTPS completamente funzionante a uno dei miei domini.

    Ho aggiunto questa configuration prima delle impostazioni HTTP:

     https_port 443 accel ssl-bump transparent vhost cert=/usr/ssl/CA/server1.crt key=/usr/ssl/CA/server1.key cache_peer 192.168.0.12 parent 443 0 no-query originserver login=PASS ssl sslflags=DONT_VERIFY_PEER name=server1_ssl cache_peer_domain server1_ssl ssl www.server1.com server1.com 

    Questo sembrava essere ok la notte scorsa. Conterrebbe

     https:// www.domain1.com 

    completamente crittografati. A causa di una delle opzioni (prova e errore – non si può ricordare quale), decrittografa i pacchetti e dirige la richiesta HTTPS al VM corretto. Il VM aveva già installato il certificato SSL, in modo da riconoscere le richieste HTTPS e l'integer pageload dall'inizio alla fine è stato crittografato.

    Posso visitare https: // www.domain2.com e direi che la connessione è stata parzialmente crittografata e mostrerebbe un errore di cert, che il cert era per www.domain1.com

    Tuttavia, oggi, questo interferisce veramente con la connessione HTTP a dominio1 e il mio browser stava dicendo che la pagina veniva reindirizzata in un modo che non avrebbe mai completato.

    Da allora ho rimosso l'intera connessione di connessione SSL dal file di configuration, e sto eseguendo solo HTTP standard.

    C'è qualche modo per get https: // www.domain1.com per leggere cert domain1.crt e diretto a VM di dominio1 e https: // www.domain2.com per leggere cert domain2.crt e diretto a VM di domain2?

    Mi dispiace per una lunga domanda, ma è un problema molto specifico che ho avuto, e ho cercato di dare il maggior numero ansible di informazioni.

    Grazie

  • configurare FastCGI su CentOS con PHP
  • nginx rispondere a nomi host ignoti?
  • Reverse proxy HTTPS da nginx a Apache
  • Yum: Nessun mysql-server di pacchetto disponibile in Cent OS 7
  • voce pg_hba.conf per host
  • IIS che richiede i certificati anche se impostato per ignorare
  • One Solution collect form web for “Certificati SSL multipli con il proxy inverso Squid”

    Il calamaro non support SNI ciò che è scritto qui . Così avere in Squid:

     https://server1.com (cert for server1.com) => http://mylanip1 https://server2.com (cert for server2.com) => http://mylanip2 

    devi:

    1. Mettere gli indirizzi su IP diversi, perché un certificato è assegnato a una coppia unica [IP, port].
    2. Configurare Squid come questo:
     https_port server1.com:443 cert=/etc/ssl/server1.pem vhost https_port server2.com:443 cert=/etc/ssl/server2.pem vhost cache_peer mylanip1 parent 80 0 name=lanip1 no-query originserver cache_peer_domain lanip1 server1.com cache_peer mylanip2 parent 80 0 name=lanip2 no-query originserver cache_peer_domain lanip2 server2.com 

    Sarebbe meglio se avessero server nei sottodomini di un dominio per il quale hai un certificato wildcard (ad es. S1.myserver.com, s2.myserver.com, certificato per * .myserver.com). Quindi puoi utilizzare solo una voce https_port

     https_port 443 cert=/etc/ssl/wildcard.myserver.com.pem vhost 

    Quindi è ansible nel calamaro.

    Ma tale caso semplice è molto più facile da fare con httpd e gli host virtuali basati sul nome . Salverai un IP pubblico. In Centos 6 openssl e versioni di httpd supportno SNI. È visibile dalla versione openssl. (Vedi qui e qui )

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.