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!