Einrichten von SSL in Apache2 mit der Backend-Docker-App

Einrichten von SSL in Apache2 mit der Backend-Docker-App

Ich verwende Ubuntu Server (18.04) auf einer Azure-VM mit Apache2 (2.4.29). Ich habe eine Backend-App, die in Docker auf demselben Host läuft, der von meiner Site aufgerufen wird. Das funktioniert ohne SSL recht einfach. Ich habe mein SSL-Zertifikat hinzugefügt und eine statische Seite wird problemlos über https geladen (das Zertifikat ist also gültig). Wenn ich die Seite hinzufüge, die meine App aufruft (die auf Host-Port 8080 lauscht), erhalte ich eine Fehlermeldung:

ERHALTENhttps://myhost.com:8080/api/fetchServicenet::ERR_SSL_PROTOCOL_ERROR

Da meine App im Container nicht für SSL eingerichtet ist, wie konfiguriere ich Apache2 für die Interaktion mit dem lokalen Container ohne SSL?

virtueller Host-Konfiguration:

<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>

 
                                                                                                                                                                           

Antwort1

Ein Beitrag für alle anderen mit demselben Problem. Ich habe schließlich einen zweiten virtuellen Host für den Reverse-Proxy erstellt.

also site1 -> für die Apache-Webseite mit SSL,

Site2 -> Reverse-Proxy zum Beenden von SSL für Containerdienst. Anschließend die ursprüngliche SSL-Datei des virtuellen Hosts kopiert und für den neuen virtuellen Host 8443 angepasst:

Dokumentstamm auskommentieren (zB # Dokumentstamm)

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

Außerdem wurde ein zweiter Abhörport in ports.conf hinzugefügt (z. B. 8443) und die Site aktiviert. a2ensite reverse-ssl.conf systemctl restart apache2

gut zu gehen!

verwandte Informationen