Ok
Also habe ich vor einiger Zeit Apache httpd
installiert und bin kürzlich dazu gekommen, um SSL einzurichten und mehrere Tomcat-Server zu bedienen.
Im Moment habe ich zwei völlig separate Tomcat-Instanzen, die bis zu leicht unterschiedlichen Versionen (eine für dev und eine für Demo) meine Web-App für zwei verschiedene Ports bereitstellen:
example.com:8081
example.com:8082
Ich habe erfolgreich (zurück im Januar) mod_jk
verwendet, um httpd
zu erhalten, um dieselben Tomcat-Instanzen an http://www.example.com:8090/dev
und http://www.example.com:8090/demo
zu liefern (8090 cos. Ich habe zu diesem Zeitpunkt eine andere App auf 8080 über Jetty ausgeführt), die folgenden Code in httpd.conf
verwendet:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
<VirtualHost *:8090>
JkMount /devd* tomcatDev
JkMount /demo* tomcatDemo
</VirtualHost>
Was ich nicht versuche, ist SSL zu aktivieren.
Ich habe folgendes zu httpd.conf
hinzugefügt:
Listen 443
<VirtualHost _default_:443>
JkMount /dev* tomcatDev
JkMount /demo* tomcatDemo
SSLEngine on
SSLCertificateFile "/opt/httpd/conf/localhost.crt"
SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
Aber wenn ich versuche, Apache mit apachectl restart
neu zu starten (ja, nachdem ich die andere App, die ich erwähnt habe, heruntergefahren hat, damit sie nicht mit https-Verbindungen spielt), erhalte ich ständig den Fehler:
Ungültiger Befehl 'SSLEngine', möglicherweise falsch geschrieben oder durch ein Modul definiert, das nicht in der Serverkonfiguration enthalten ist. httpd läuft nicht und versucht zu starten
Ich habe im httpd/modules
-Verzeichnis nachgesehen und tatsächlich gibt es keinen mod_ssl
, nur mod_jk.so
und httpd.exp
.
Ich habe versucht, mit yum mod_ssl
zu installieren, da es bereits installiert ist. Tatsächlich kann ich mod_ssl.so
in /usr/lib/httpd/modules
finden, aber dies ist NICHT der Pfad zu dem, wo ich httpd
installiert habe, nämlich /opt/httpd
. Tatsächlich enthält /usr/lib/httpd
nur das modules
dir.
Kann mir jemand sagen, wie ich mod_ssl
ordnungsgemäß für meinen Installationsort von httpd
installiert, damit ich an diesem Fehler vorbeikommen kann?
Gibt es andere LoadModule
-Befehle, die auf Module im /usr/lib/httpd/modules
-Ordner verweisen? In diesem Fall sollten Sie LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.so
zu Ihrer conf-Datei hinzufügen.
Andernfalls möchten Sie die Datei mod_ssl.so
in das Verzeichnis kopieren, aus dem die anderen Module geladen werden, und dort darauf verweisen.
Ich habe festgestellt, dass ich das SSL-Modul in Apache aktivieren muss (natürlich Präfixbefehle mit Sudo
, wenn Sie nicht als root ausgeführt werden):
a2enmod ssl
starten Sie dann Apache neu:
/etc/init.d/Apache2 restart
Weitere Details zu SSL in Apache für Ubuntu/Debian hier .
Installieren Sie mod_ssl mit folgendem Befehl:
yum install mod_ssl
laden Sie anschließend den Apache-Server mit den folgenden Befehlen neu und starten Sie ihn erneut:
systemctl reload httpd.service
systemctl restart httpd.service
Dies sollte in den meisten Fällen funktionieren.
Ich benutzte
Sudo yum install mod24_ssl
und arbeitet in meinem Amazon Linux AMI