GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Apache 2.4.2 ze zdroje na CentOS 6.2 s SSL

Pokud se pokusíte postupovat podle článku o tom, jak nainstalovat Apache s SSL, o kterém jsme diskutovali před chvílí, budete čelit problému při „vytvoření“ kvůli kompatibilitě verzí mezi Apache 2.4.4 a nástroji APR (Apache Portable Runtime Library), které přicházejí s CentOS 6.

V tomto článku jsme vysvětlili, jak tento problém vyřešit, aby nejnovější Apache fungoval na CentOS nebo RedHat.

Ujistěte se, že máte nainstalované gcc a openssl-devel.

# yum install gcc
# yum install openssl-devel

K instalaci Apache ze zdroje také potřebujete „Apache Portable Runtime Library“ APR.

Již máte nainstalovaný balíček „apr“ a „apr-util“. Nainstalujte balíčky apr-devel a apr-util-devel.

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

Poznámka:V našem případě (kvůli problémům s kompatibilitou verzí) je stáhneme a nainstalujeme ručně později. Ale teď pojďme s proudem a uvidíme, co se stane, když to zkusíte udělat tímto způsobem.

Stáhnout Apache

Stáhněte si Apache z httpd.apache.org. Aktuální stabilní verze je 2.4.2.

Jakmile získáte přímou adresu URL pro stažení nejnovější stabilní verze Apache, použijte wget, jak je uvedeno níže, ke stažení přímo na váš server.

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

Nainstalujte Apache s SSL/TLS

Prohlédněte si všechny dostupné možnosti instalace a konfigurace Apache, jak je uvedeno níže.

cd httpd-2.4.2
./configure --help

Chcete-li nainstalovat modul Apache, obvykle byste řekli –enable-{název-modulu}. Například pro instalaci SSL s Apache je to –enable-ssl. Chcete-li nainstalovat modul ldap, je to –enable-ldap.

Chcete-li odinstalovat jakýkoli výchozí modul dodávaný s Apache, obvykle byste řekli –disable-{název-modulu}. Chcete-li například zakázat základní ověřování v Apache, je to –disable-auth-basic

V tomto příkladu nainstalujeme Apache se všemi výchozími moduly, s přidáním –enable-ssl (pro instalaci mod_ssl pro podporu SSL) a –enable-so, který pomáhá načítat moduly v Apache za běhu prostřednictvím Dynamic Shared Objektový (DSO) mechanismus namísto nutnosti rekompilace.

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

Poznámka:Ve výchozím nastavení výše uvedené instaluje Apache pod /usr/local/apache2. Pokud chcete toto umístění změnit, použijte volbu –prefix v souboru ./configure.

Oprava chybových zpráv nástroje APR

Možná jste se s tímto problémem nesetkali při instalaci starší verze Apache, jak jsme před časem diskutovali.

Když spustíte „make“, můžete získat „rotatelogs.c:(.text+0x5ed):nedefinovaný odkaz na „apr_file_link“ “, pokud to děláte na CentOS 6.2, jak je uvedeno níže.

# 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

Je to proto, že na CentOS 6 je nejnovější verze APR dostupná prostřednictvím instalace yum 1.3.9, jak je uvedeno níže.

# 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 však potřebuje nejnovější verzi APR (která je aktuálně 1.4.6).

Přejděte na stránku stahování APR a stáhněte si apr i apr-util.

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

Nyní byste měli umístit tuto novou verzi adresářů apr a apr-util (bez názvu verze v adresáři) do adresáře „srclib“ umístěného v adresáři httpd-2.4.2, který byl vytvořen, když jste rozbalili stažený software apache.

V mém příkladu jsem si stáhl httpd-2.4.2.tar.gz a rozbalil jej pod /usr/src. Takže musím do tohoto adresáře umístit nejnovější apr a apr-util.

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

Poté, co to uděláme, musíme to znovu nakonfigurovat a udělat. Pokud spustíte ./configure –help, uvidíte následující možnosti související s APR

# 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

Pokud se rozhodnete nainstalovat apr-1.4.6 a apr-util-1.4.1 na váš systém, musíte použít „–with-apr“ a „–with-apr-util“ a uvést cestu, kam jste je nainstalovali. utility.

V tomto příkladu jsme to neudělali. tj. Nenainstalovali jsme apr a apr-util, které jsme si stáhli. Místo toho jsme je umístili pod httpd-2.4.2/srclib/apr-util. Měli bychom tedy použít „–with-included-apr“ v souboru ./configure, který použije tyto apr a apr-util pouze pro kompilaci a instalaci apache.

Pojďme tedy znovu provést ./configure (pomocí –with-included-apr), provést instalaci a provést instalaci, jak je uvedeno níže.

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

Nyní již make nebude dávat chybovou zprávu „rotatelogs.c:(.text+0x5ed):undefined reference to `apr_file_link“.

Povolte SSL v httpd.conf

Konfigurační soubor Apache httpd.conf se nachází v /usr/local/apache2/conf.

Odkomentujte řádek httpd-ssl.conf Include a řádek LoadModule ssl_module v souboru /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

Prohlédněte si httpd-ssl.conf a prohlédněte si všechny výchozí konfigurace SSL. Ve většině případů nemusíte v tomto souboru nic upravovat.

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

Před spuštěním Apache je vyžadován SSL certifikát a klíč. Soubor server.crt a server.key zmíněný v httpd-ssl.conf musí být vytvořen, než budeme pokračovat.

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

Vytvořte soubor server.crt a server.key

Nejprve vygenerujte server.key pomocí openssl.

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

Výše uvedený příkaz bude vyžadovat heslo. Toto heslo si nezapomeňte zapamatovat. Budete to potřebovat při pozdějším spuštění Apache.

Dále vygenerujte soubor žádosti o certifikát (server.csr) pomocí výše uvedeného souboru server.key.

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

Nakonec vygenerujte certifikát ssl s vlastním podpisem (server.crt) pomocí výše uvedených souborů server.key a server.csr.

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

Po provedení výše uvedených kroků uvidíte následující tři soubory pod /usr/src

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

Zkopírujte soubory server.key a server.crt do příslušného umístění konfiguračního adresáře Apache.

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

Spusťte Apache

Pokud se vám zobrazuje níže uvedená chybová zpráva, nezapomeňte odkomentovat řádek zobrazený níže v httpd.conf

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

Pokud se vám zobrazuje níže uvedená chybová zpráva, nezapomeňte odkomentovat řádek zobrazený níže v httpd.conf

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

Nakonec vás to před spuštěním apache vyzve k zadání hesla pro váš soukromý klíč.

# /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.

Ověřte, že proces Apache httpd běží na pozadí

# 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

K zastavení Apache použijte apachectl stop.

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

Použijte httpd -l k zobrazení všech modulů, které jsou zkompilovány uvnitř démona Apache httpd.

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

Ve výchozím nastavení Apache SSL běží na portu 443. Otevřete webový prohlížeč a ověřte, že máte přístup k Apache pomocí https://{vaše-ip-adresa}


Linux
  1. Jak nainstalovat zabezpečení modu na Centos 7.x s apache?

  2. Jak nainstalovat Let's Encrypt SSL s Apache na Debian 11

  3. Jak nainstalovat Apache CouchDB na CentOS 6 (ze zdroje a EPEL)

  1. Jak nainstalovat Let’s Encrypt with Apache na CentOS 7

  2. Nainstalujte Apache 2 ze zdroje na Linux

  3. Jak nainstalovat Apache 2 s SSL na Linuxu (s mod_ssl, openssl)

  1. Jak nainstalovat certifikát SSL na Apache pro CentOS 7

  2. Jak nainstalovat mod_ssl na RHEL 8 / CentOS 8 s webovým serverem httpd Apache

  3. Jak nainstalovat WordPress s Apache na CentOS 7