Configuración de SSL en Apache2 con la aplicación Docker backend

Configuración de SSL en Apache2 con la aplicación Docker backend

Estoy ejecutando el servidor Ubuntu (18.04) en una máquina virtual de Azure, con Apache2 (2.4.29). Tengo una aplicación de backend ejecutándose en la ventana acoplable en el mismo host al que llama mi sitio. Esto funciona bastante fácil sin SSL. Agregué mi certificado SSL y una página estática se carga bien a través de https (por lo que el certificado es válido). Cuando agrego la página que llama a mi aplicación (escuchando en el puerto de host 8080), aparece un error:

CONSEGUIRhttps://myhost.com:8080/api/fetchServiceneto::ERR_SSL_PROTOCOL_ERROR

Dado que mi aplicación en el contenedor no está configurada para SSL, ¿cómo configuro Apache2 para interactuar con el contenedor local sin SSL?

configuración de host virtual:

<IfModule mod_ssl.c>
 <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName myhost.com
        DocumentRoot /var/www/myhost.com/public_html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

    LoadModule ssl_module modules/mod_ssl.so

    SSLProxyEngine on

    ProxyPreserveHost On

    ProxyPass *:8080/ http://myhost.com:8080/

    ProxyPassReverse *:8080/ http://myhost.com:8080/

    Header set Access-Control-Allow-Origin "*"

    SSLCertificateFile /etc/letsencrypt/live/myhost.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/myhost.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
 </VirtualHost>
</IfModule>

 
                                                                                                                                                                           

Respuesta1

Publicación para cualquier otra persona con el mismo problema. Terminé creando un segundo host virtual para el proxy inverso.

entonces sitio1 -> para la página web de Apache con SSL,

sitio2 -> proxy inverso para finalizar SSL para el servicio de contenedor. Luego copié el archivo de host virtual ssl original y lo ajusté para el nuevo host virtual 8443:

comentar Raíz del documento (p. ej., # raíz del documento)

<Location />
    Order allow,deny
    Allow from all
    ProxyPass http://localhost:8080/ flushpackets=on
    ProxyPassReverse http://localhost:8080/ 
</Location>

También se agregó un segundo puerto de escucha en ports.conf (por ejemplo, 8443) y se habilitó el sitio. a2ensite reverse-ssl.conf systemctl reiniciar apache2

¡bueno para ir!

información relacionada