Configurando SSL no Apache2 com aplicativo backend docker

Configurando SSL no Apache2 com aplicativo backend docker

Estou executando o servidor Ubuntu (18.04) em uma VM do Azure, com Apache2 (2.4.29). Eu tenho um aplicativo de back-end em execução no docker no mesmo host chamado pelo meu site. Isso funciona com bastante facilidade sem SSL. Adicionei meu certificado SSL e uma página estática carrega bem em https (portanto, o certificado é válido). Quando adiciono a página que chama meu aplicativo (escutando na porta host 8080), recebo um erro:

PEGARhttps://myhost.com:8080/api/fetchServicerede::ERR_SSL_PROTOCOL_ERROR

Como meu aplicativo no contêiner não está configurado para SSL, como configuro o Apache2 para interagir com o contêiner local sem SSL?

configuração do 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>

 
                                                                                                                                                                           

Responder1

Postando para mais alguém com o mesmo problema. Acabei criando um segundo host virtual para o proxy reverso.

então site1 -> para a página da web apache com SSL,

site2 -> proxy reverso para encerrar o SSL para serviço de contêiner. Em seguida, copiei o arquivo de host virtual SSL original e ajustei para o novo host virtual 8443:

comente a raiz do documento (por exemplo, # raiz do documento)

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

Também foi adicionada uma segunda porta de escuta em ports.conf (por exemplo, 8443) e site habilitado. a2ensite reverso-ssl.conf systemctl reiniciar apache2

bom para ir!

informação relacionada