Wie installiere ich mod_ssl für Apache httpd?

76

OK

Daher habe ich Apache httpdvor einiger Zeit installiert und bin kürzlich darauf zurückgekommen, um zu versuchen, SSL einzurichten und es für mehrere verschiedene Tomcat-Server bereitzustellen.

Im Moment habe ich zwei völlig separate Tomcat-Instanzen, die bis zu leicht unterschiedlichen Versionen (eine für Entwickler und eine für Demo) meine Web-App an zwei verschiedenen Ports bereitstellen:

  • example.com:8081
  • example.com:8082

Ich habe erfolgreich (Januar zurück) verwendet mod_jkzu bekommen , httpddie gleichen Tomcat Instanzen zu dienen http://www.example.com:8090/devund http://www.example.com:8090/demo (8090 cos ich eine andere App auf 8080 über Jetty in diesem Stadium ausgeführt habe) in dem folgenden Code httpd.conf:

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>

Ich versuche nicht, SSL zu aktivieren.

Ich habe folgendes hinzugefügt zu httpd.conf:

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 neu zu starten apachectl restart(ja, nachdem ich die andere App heruntergefahren habe, die ich erwähnt habe, damit sie nicht mit https-Verbindungen spielt), erhalte ich ständig den Fehler:

Ungültiger Befehl 'SSLEngine', möglicherweise falsch geschrieben oder von einem Modul definiert, das nicht in der Serverkonfiguration enthalten ist. httpd läuft nicht und versucht zu starten

Ich habe in die Richtung geschaut und in der httpd/modulesTat gibt es keine mod_ssl, nur mod_jk.sound httpd.exp.

Ich habe versucht, mit yum zu installieren mod_ssl, es heißt, es ist bereits installiert. In der Tat kann ich orten mod_ssl.soin /usr/lib/httpd/modulesaber das ist nicht der Weg, wo ich installiert habe , httpddas ist /opt/httpdund in der Tat /usr/lib/httpdenthält nichts anderes als die modulesRicht.

Kann mir jemand sagen, wie ich mod_sslmeinen installierten Speicherort ordnungsgemäß installieren soll, httpddamit ich diesen Fehler überwinden kann?

Nick Foote
quelle

Antworten:

39

LoadModuleVerweisen andere Befehle auf Module im /usr/lib/httpd/modulesOrdner? Wenn ja, sollten Sie in Ordnung sein, nur LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.sozu Ihrer conf-Datei hinzuzufügen.

Andernfalls möchten Sie die mod_ssl.soDatei in das Verzeichnis kopieren, aus dem die anderen Module geladen werden, und dort darauf verweisen.

Robert
quelle
18
In meinem Apache mod_ssl.sofehlte die Installation völlig. Es stellt sich heraus, dass es von der Basisinstallation getrennt ist und sich unter dem Paket mod_sslin der yum-Paketverwaltung befand. Heruntergeladen mit yum install mod_ssldann erschien es im modulesOrdner.
ug_
Nachdem ich meinen eigenen Apache 2 kompiliert hatte, stellte ich fest, dass mod_ssl.so fehlte. müssen es erneut kompilieren, von Grund auf neu.
Frumbert
@ug_ danke, ich bestätige, dass das Modul nach der Installation das Modul enthält und auch eine ssl.confDatei mit den erforderlichen Konfigurationen hinzugefügt hat.
Buchhalter م
103

Ich habe festgestellt, dass ich das SSL-Modul in Apache aktivieren muss (offensichtlich Präfixbefehle mit, sudowenn 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 .

SharpC
quelle
Welches Distributionsbetriebssystem verwenden Sie?
Naga
2
@ Naga a2enmodist aus der Debian-Welt.
Z4-Tier
25

Versuchen Sie die Installation mod_sslmit dem folgenden Befehl:

yum install mod_ssl

Laden Sie anschließend Ihren Apache-Server neu und starten Sie ihn mit den folgenden Befehlen neu:

systemctl reload httpd.service
systemctl restart httpd.service

Dies sollte in den meisten Fällen funktionieren.

veer7
quelle
1
Wenn Sie Apache von der Quelle installieren, kann yum es nicht erkennen. Stattdessen wird eine doppelte (veraltete) Version von Apache installiert und mod_ssl.so in die Moduldateien dieses Apache eingefügt .
Mike Flynn
3

Ich benutzte:

sudo yum install mod24_ssl

und es funktionierte in meinem Amazon Linux AMI.

Oscar David
quelle