Question Comment fournir un accès HTTPS à un serveur Web qui ne prend pas en charge SSL?


J'ai un programme (motion) qui sert une page Web montrant un flux de caméra en direct. Je souhaite rendre ce flux disponible via Internet, mais en utilisant SSL et un certificat afin que le flux ne puisse être vu que par ceux qui possèdent le certificat approprié. Ce que je veux savoir: y a-t-il quelque chose comme un proxy qui lit sur le serveur et sert une version SSL de celui-ci?


5
2017-08-08 02:52


origine


combien de téléspectateurs attendez-vous? - gravyface
Pas plus de 5 - Tomas


Réponses:


Installez Apache avec un vhost pertinent et utilisez ProxyPass (et probablement ProxyPassReverse) pour faire le proxy à votre webcam. L'authentification par certificat client est plus délicate au toucher, mais pas beaucoup; assez surprenant, les résultats de recherche Google pour "authentification du certificat client apache" sont très utile.


9
2017-08-08 04:45



Comme j'ai déjà apache pour un serveur Web, c'est la solution la plus appropriée. Merci! - Tomas
Le seul problème, comment créer un certificat client avec mon propre fichier CA? Existe-t-il une commande openssl? - Tomas
Oui il y a. Le mieux est de poser cette question séparément. - womble♦


La proposition de Womble d'un proxy inverse Apache est une excellente suggestion. Une autre solution serait de configurer stunnel pour l'envelopper. Stunnel sera plus léger qu'Apache si vous ne recherchez aucun des avantages supplémentaires d'avoir un serveur Web complet devant votre caméra.

Edit 2016: Cela fait longtemps, mais cette question génère encore du trafic. Je recommande maintenant attelage. Hitch est conçu pour l'évolutivité, contrairement à Stunnel. Si le contenu ou les en-têtes HTTP doivent être modifiés par le proxy, je le recommande. Nginx.


11
2017-08-08 07:28



Est-ce que Stunnel prend en charge les certificats clients? - gravyface
stunnel prend en charge un certificat pour l'authentification, ne l'appellerait pas nécessairement un certificat client et vous auriez probablement du mal à en avoir plusieurs, donc inutile de l'utiliser si vous souhaitez désactiver l'accès d'un seul utilisateur. Apache ou un autre proxy est probablement la meilleure option pour un contrôle fin. - Michael Henry
@ Michael Henry: Vous avez tout à fait tort, Stunnel fonctionnera avec une infrastructure CA standard. Il prend parfaitement en charge les certificats clients. Ce n'est pas une lutte, c'est en fait assez facile. - bahamat


La plupart des serveurs Web polyvalents ont également un module proxy, qui inclut Apache avec mod_proxy, ainsi que Nginx et lighttpd pour une solution plus légère.

Si vous souhaitez simplement un proxy SSL, c'est-à-dire un composant qui reçoit uniquement du trafic SSL, le décompresse, le transfère à un service dorsal et rechiffre la réponse, vous devriez jeter un coup d'œil à stunnel ou Goujon. Comme ces outils ne font que cela, ils sont plus faciles à installer et généralement plus rapides et moins gourmands en ressources que les alternatives (notamment Apache).


3
2017-08-08 08:07





Une autre option que vous avez peut-être déjà à votre disposition est le VPN. En fonction du pare-feu que vous avez devant la caméra Web / DVR, vous pouvez configurer un VPN IPSec mobile et commencer par établir une connexion avec le pare-feu, puis accéder à la caméra via son adresse IP interne (en supposant que la machine de la caméra est NAT pare-feu).

La plupart des routeurs / pare-feu / entreprises offrent des fonctionnalités VPN.

Avec cette option, vous pouvez complètement désactiver le transfert de port de sorte que votre appareil photo n’écoute plus à l’extérieur et ne soit accessible qu’après l’établissement d’une connexion VPN.

Cela vous fournirait un cryptage et une authentification avec potentiellement moins de temps d’apprentissage que la configuration d’Apache en tant que proxy inverse et aucun coût matériel supplémentaire (encore une fois, cela dépend de ce que vous avez).

L'inconvénient est que vous devez configurer un client VPN sur chaque ordinateur sur lequel vous souhaitez visualiser les caméras, mais il y aurait également une surcharge d'administration supplémentaire avec les certificats clients.

Il convient également de mentionner que, selon le cryptage / protocole, le VPN ajoute une surcharge, ce qui peut influer sur le débit du réseau, mais cela ne devrait pas être un problème en ce qui concerne le nombre d'utilisateurs auxquels vous vous attendez et la probabilité que la caméra gagne. " t être regardé concurremment très souvent.

Si vous envisagez uniquement d'accéder à la caméra depuis un emplacement distant *, vous pouvez également configurer un tunnel IPSec entre les pare-feu de l'emplacement distant et de la caméra (appelé tunnel VPN IPSec de site à site). Ainsi, vous n'avez pas besoin de configurer les clients VPN sur chaque ordinateur sur lequel vous envisagez de visualiser les caméras: vous pouvez simplement afficher l'interface Web de la caméra dans n'importe quel navigateur, sur n'importe quel ordinateur de cet emplacement distant (en fonction des règles de pare-feu de cours).

Si vous nous fournissez le modèle / pare-feu du pare-feu, nous pouvons vous suggérer la configuration la mieux adaptée.

* vous pouvez certainement installer d'autres tunnels VPN de site à site. Mais si les 5 utilisateurs se trouvent tous à des emplacements Internet différents, le processus de configuration des tunnels IPSec est un peu fastidieux. Les clients VPN seraient donc plus pratiques (ou une combinaison des deux: par exemple, si 4 des 5 utilisateurs se trouvent à un emplacement Internet, configurez un tunnel IPSec à cet emplacement (le cinquième utilisateur pourrait utiliser un client VPN).


3
2017-08-08 12:02





Ce que vous décrivez est faisable, oui. J'imagine qu'un certain nombre d'outils peuvent le faire, mais je suis assez confiant qu'apache peut le faire. Vous décrivez un «proxy inverse» (quelque chose à google) et une authentification basée sur un certificat. Pour le premier, vous voulez probablement mod_rewrite, mais je n'ai pas beaucoup d'expérience avec ce dernier.

Je ne serais pas surpris si quelques autres outils pouvaient le faire, par exemple. squid ou une appliance d’accélération SSL.


1
2017-08-08 03:24



Moins d'opinion et plus de faits s'il vous plaît. - Chris S