web-dev-qa-db-fra.com

Emplacement du certificat Apache HTTPS ProxyPass

J'essaie de configurer un serveur Apache qui utilise ProxyPass pour transmettre des demandes HTTPS à un autre serveur.

Appelons le serveur proxy ALPHA et le serveur cible BETA.

ALPHA n'exécute pas HTTPS, mais BETA le fait.

J'ai d'abord essayé d'utiliser cette spécification d'hôte virtuel sur ALPHA:

<VirtualHost *:443>
  ServerName mysite.com
  ProxyPass / https://192.168.1.105/   # BETA's IP address
  ProxyPassReverse / https://192.168.1.105/  # BETA's IP address
  ProxyPreserveHost On
  ProxyTimeout 600

  SSLProxyEngine On
  RequestHeader set Front-End-Https "On"
  CacheDisable *
</VirtualHost>

Mais quand j'ai essayé cela, Apache s'est plaint en disant: "[erreur] Le serveur devrait être compatible avec SSL mais n'a pas de certificat configuré [Indice: SSLCertificateFile]".

J'ai dû copier le certificat SSL de BETA vers ALPHA et ajouter ces lignes à la spécification d'hôte virtuel sur ALPHA:

  SSLEngine on
  SSLCertificateKeyFile /usr/local/ssl/private/BETA_private.key
  SSLCertificateFile /usr/local/ssl/crt/BETA_public.crt
  SSLCertificateChainFile /usr/local/ssl/crt/BETA_intermediate.crt

Maintenant, le système fonctionne. Mais j'ai le sentiment d'avoir fait quelque chose de mal ou inutile. La clé privée et le certificat du site Web reposent à la fois sur ALPHA et BETA. Est-ce nécessaire? Aurais-je dû le faire différemment?

2
oz1cz

On dirait que vous chiffrez le trafic deux fois - une fois sur WAN et une autre fois sur un réseau local. Normalement, le proxy inverse est configuré en tant que point de terminaison SSL car il est généralement inutile de chiffrer le trafic sur une connexion LAN sécurisée.

Depuis votre configuration Apache, le proxy inverse (serveur ALPHA) se connecte au serveur Web (serveur BETA) via une adresse IP privée (192.168.1.105). Je suppose que le proxy inverse est accessible par un nom d'hôte trouvé dans le certificat SSL.

Pour que SSL fonctionne correctement pour les utilisateurs se connectant sur le réseau étendu, le cert, la clé et le trousseau doivent être installés sur le proxy inverse (serveur ALPHA). En ce qui concerne le serveur Web (Serveur BETA), si vos utilisateurs ne s'y connectent pas directement, il n'est pas nécessaire d'installer un certificat SSL valide.

1
Question Overflow