GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie Apache 2.4.2 von der Quelle auf CentOS 6.2 mit SSL

Wenn Sie versuchen, dem Artikel zur Installation von Apache mit SSL zu folgen, den wir vor einiger Zeit besprochen haben, werden Sie beim „Make“ auf ein Problem stoßen, da die Versionen zwischen Apache 2.4.4 und den APR-Dienstprogrammen (Apache Portable Runtime Library) kompatibel sind mit CentOS 6.

Wir haben in diesem Artikel erklärt, wie Sie dieses Problem lösen können, damit der neueste Apache auf CentOS oder RedHat funktioniert.

Stellen Sie sicher, dass Sie gcc und openssl-devel installiert haben.

# yum install gcc
# yum install openssl-devel

Sie benötigen außerdem „Apache Portable Runtime Library“ APR, um Apache von der Quelle zu installieren.

Sie haben bereits die Pakete „apr“ und „apr-util“ installiert. Installieren Sie die Pakete apr-devel und apr-util-devel.

# yum install apr-devel
# yum install apr-util-devel

Hinweis:In unserem Fall (aufgrund der Versionskompatibilitätsprobleme) werden wir diese herunterladen und später manuell installieren. Aber lassen Sie uns erst einmal mit dem Strom schwimmen und sehen, was passiert, wenn Sie versuchen, es auf diese Weise zu tun.

Apache herunterladen

Laden Sie Apache von httpd.apache.org herunter. Die aktuelle stabile Version ist 2.4.2.

Sobald Sie die direkte URL zum Herunterladen der neuesten stabilen Version von Apache erhalten haben, verwenden Sie wget wie unten gezeigt, um sie direkt auf Ihren Server herunterzuladen.

cd /usr/src
wget http://mirror.nyi.net/apache//httpd/httpd-2.4.2.tar.gz
tar xvfz httpd-2.4.2.tar.gz

Installieren Sie Apache mit SSL/TLS

Zeigen Sie alle verfügbaren Apache-Installations- und Konfigurationsoptionen wie unten gezeigt an.

cd httpd-2.4.2
./configure --help

Um ein Apache-Modul zu installieren, würden Sie normalerweise sagen –enable-{module-name}. Um beispielsweise SSL mit Apache zu installieren, ist es –enable-ssl. Um das LDAP-Modul zu installieren, ist es –enable-ldap.

Um ein Standardmodul zu deinstallieren, das mit Apache geliefert wird, würden Sie normalerweise sagen –disable-{module-name}. Um beispielsweise die grundlegende Authentifizierung in Apache zu deaktivieren, ist es –disable-auth-basic

In diesem Beispiel installieren wir Apache mit allen Standardmodulen, mit Hinzufügen von –enable-ssl (um mod_ssl für die SSL-Unterstützung zu installieren) und –enable-so, was hilft, Module in Apache während der Laufzeit über Dynamic Shared zu laden Object (DSO)-Mechanismus, anstatt eine Neukompilierung zu erfordern.

./configure --enable-ssl --enable-so
make
make install

Hinweis:Standardmäßig installiert das obige Apache unter /usr/local/apache2. Wenn Sie diesen Speicherort ändern möchten, verwenden Sie die Option –prefix in ./configure.

Fehlermeldungen des APR-Dienstprogramms beheben

Sie sind möglicherweise nicht auf dieses Problem gestoßen, als Sie eine ältere Version von Apache installiert haben, wie wir vor einiger Zeit besprochen haben.

Wenn Sie „make“ ausführen, erhalten Sie möglicherweise „rotatelogs.c:(.text+0x5ed):undefined reference to `apr_file_link‘ ” Fehlermeldung, wenn Sie dies unter CentOS 6.2 wie unten gezeigt tun.

# make
rotatelogs.c:298: warning: implicit declaration of function âapr_file_linkâ
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -std=gnu99 -pthread
-o rotatelogs  rotatelogs.lo /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib64/libapr-1.la -lpthread
rotatelogs.o: In function `post_rotate':
rotatelogs.c:(.text+0x5ed): undefined reference to `apr_file_link'
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory `/usr/src/httpd-2.4.2/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/httpd-2.4.2/support'
make: *** [all-recursive] Error 1

Dies liegt daran, dass unter CentOS 6 die neueste APR-Version, die über die Yum-Installation verfügbar ist, 1.3.9 ist, wie unten gezeigt.

# rpm -qa apr*
apr-1.3.9-3.el6_1.2.x86_64
apr-util-1.3.9-3.el6_0.1.x86_64

Apache 2.4.2 benötigt jedoch die neueste Version von APR (derzeit 1.4.6).

Gehen Sie also zur APR-Downloadseite und laden Sie sowohl apr als auch apr-util herunter.

cd /usr/src
wget http://mirror.atlanticmetro.net/apache//apr/apr-1.4.6.tar.gz
wget http://mirror.atlanticmetro.net/apache//apr/apr-util-1.4.1.tar.gz
tar xvfz apr-1.4.6.tar.gz
tar xvfz apr-util-1.4.1.tar.gz

Jetzt sollten Sie diese neue Version der Verzeichnisse apr und apr-util (ohne den Versionsnamen im Verzeichnis) im Verzeichnis „srclib“ ablegen, das sich unter dem Verzeichnis httpd-2.4.2 befindet, das erstellt wurde, als Sie die heruntergeladene Apache-Software dekomprimiert haben.

In meinem Beispiel habe ich httpd-2.4.2.tar.gz heruntergeladen und unter /usr/src entpackt. Also muss ich das neueste apr und apr-util in diesem Verzeichnis ablegen.

mv apr-1.4.6 /usr/src/httpd-2.4.2/srclib/apr
mv apr-util-1.4.1 /usr/src/httpd-2.4.2/srclib/apr-util

Nachdem dies erledigt ist, müssen wir es erneut konfigurieren und erstellen. Wenn Sie ./configure –help ausführen, sehen Sie die folgenden Optionen, die sich auf APR beziehen

# cd /usr/src/httpd-2.4.2
# ./configure --help
  --with-included-apr     Use bundled copies of APR/APR-Util
  --with-apr=PATH         prefix for installed APR or the full path to apr-config
  --with-apr-util=PATH    prefix for installed APU or the full path to apu-config

Wenn Sie sich entscheiden, apr-1.4.6 und apr-util-1.4.1 auf Ihrem System zu installieren, müssen Sie „–with-apr“ und „–with-apr-util“ verwenden und den Pfad angeben, wo Sie diese installiert haben Dienstprogramm.

In diesem Beispiel haben wir das nicht gemacht. d.h. Wir haben das heruntergeladene apr und apr-util nicht installiert. Stattdessen haben wir sie unter httpd-2.4.2/srclib/apr-util abgelegt. Also sollten wir „–with-included-apr“ in der ./configure verwenden, die diese apr und apr-util nur für die Apache-Kompilierung und -Installation verwendet.

Lassen Sie uns also ./configure (unter Verwendung von –with-included-apr) wiederholen, make und make install wie unten gezeigt.

./configure --enable-ssl --enable-so --with-included-apr
make
make install

Jetzt gibt make keine „rotatelogs.c:(.text+0x5ed):undefined reference to `apr_file_link“-Fehlermeldung mehr aus.

SSL in httpd.conf aktivieren

Die Apache-Konfigurationsdatei httpd.conf befindet sich unter /usr/local/apache2/conf.

Entkommentieren Sie die Include-Zeile httpd-ssl.conf und die Zeile LoadModule ssl_module in der Datei /usr/local/apache2/conf/httpd.conf.

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

Sehen Sie sich httpd-ssl.conf an, um alle Standard-SSL-Konfigurationen zu überprüfen. In den meisten Fällen müssen Sie in dieser Datei nichts ändern.

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

Das SSL-Zertifikat und der Schlüssel sind erforderlich, bevor wir den Apache starten. Die in httpd-ssl.conf erwähnten Dateien server.crt und server.key müssen erstellt werden, bevor wir fortfahren.

# cd /usr/local/apache2/conf/extra
# egrep 'server.crt|server.key' httpd-ssl.conf
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

Server.crt- und server.key-Datei erstellen

Generieren Sie zuerst den server.key mit openssl.

# cd /usr/src
# openssl genrsa -des3 -out server.key 1024

Der obige Befehl fragt nach dem Passwort. Merken Sie sich dieses Passwort unbedingt. Sie benötigen dies, wenn Sie später Ihren Apache starten.

Generieren Sie als Nächstes eine Zertifikatsanforderungsdatei (server.csr) mithilfe der obigen server.key-Datei.

# openssl req -new -key server.key -out server.csr

Erstellen Sie abschließend ein selbstsigniertes SSL-Zertifikat (server.crt) mithilfe der obigen server.key- und server.csr-Datei.

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Nachdem Sie die obigen Schritte ausgeführt haben, sehen Sie die folgenden drei Dateien unter /usr/src

# ls server*
server.crt  server.csr  server.key

Kopieren Sie die Dateien server.key und server.crt in das entsprechende Apache-Konfigurationsverzeichnis.

cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/

Apache starten

Wenn Sie die folgende Fehlermeldung erhalten, stellen Sie sicher, dass Sie die unten gezeigte Zeile in httpd.conf

auskommentieren
# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 51 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so

Wenn Sie die folgende Fehlermeldung erhalten, stellen Sie sicher, dass Sie die unten gezeigte Zeile in httpd.conf

auskommentieren
# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 76 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

# vi /usr/local/apache2/conf/httpd.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Schließlich werden Sie aufgefordert, das Passwort für Ihren privaten Schlüssel einzugeben, bevor Sie den Apache starten.

# /usr/local/apache2/bin/apachectl start
Apache/2.4.2 mod_ssl (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server www.example.com:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

Stellen Sie sicher, dass der Apache httpd-Prozess im Hintergrund ausgeführt wird

# ps -ef | grep http
root   29529     1  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29530 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29531 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29532 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
root   29616 18260  0 13:09 pts/0 00:00:00 grep http

Um den Apache zu stoppen, verwenden Sie apachectl stop.

# /usr/local/apache2/bin/apachectl stop

Verwenden Sie httpd -l, um alle Module anzuzeigen, die im Apache httpd-Daemon kompiliert sind.

# /usr/local/apache2/bin/httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c

Standardmäßig läuft Apache SSL auf Port 443. Öffnen Sie einen Webbrowser und vergewissern Sie sich, dass Sie über https://{Ihre-IP-Adresse}

auf Ihren Apache zugreifen können
Linux
  1. So installieren Sie Let’s Encrypt mit Apache unter CentOS 7

  2. Wie installiere ich Mod Security auf Centos 7.x mit Apache?

  3. So installieren Sie Let’s Encrypt SSL mit Apache unter Debian 11

  4. Installieren Sie Apache 2 von Source unter Linux

  5. So installieren Sie Apache 2 mit SSL unter Linux (mit mod_ssl, openssl)

So installieren Sie Apache mit virtuellem Host unter CentOS 8

So installieren Sie Apache Tomcat 9 auf CentOS 7

So installieren Sie Apache in CentOS 8

So installieren Sie Drupal auf CentOS 7 mit Apache

So installieren Sie WordPress auf CentOS 7.1 mit Apache

So installieren Sie Apache mit PHP-FPM auf CentOS 8