GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer Apache 2.4.2 à partir de la source sur CentOS 6.2 avec SSL

Si vous essayez de suivre l'article sur l'installation d'Apache avec SSL dont nous avons parlé il y a quelque temps, vous rencontrerez un problème lors de "make" en raison de la compatibilité de version entre Apache 2.4.4 et les utilitaires APR (Apache Portable Runtime Library) qui vient avec CentOS 6.

Nous avons expliqué dans cet article comment résoudre ce problème pour que la dernière version d'Apache fonctionne sur CentOS ou RedHat.

Assurez-vous que gcc et openssl-devel sont installés.

# yum install gcc
# yum install openssl-devel

Vous avez également besoin de l'APR "Apache Portable Runtime Library" pour installer Apache à partir de la source.

Vous aurez déjà installé les packages "apr" et "apr-util". Installez les packages apr-devel et apr-util-devel.

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

Remarque :Dans notre cas (en raison des problèmes de compatibilité des versions), nous les téléchargerons et les installerons manuellement plus tard. Mais, suivons le courant pour l'instant et voyons ce qui se passe lorsque vous essayez de le faire de cette façon.

Télécharger Apache

Téléchargez Apache depuis httpd.apache.org. La version stable actuelle est la 2.4.2.

Une fois que vous avez obtenu l'URL directe pour télécharger la dernière version stable d'Apache, utilisez wget comme indiqué ci-dessous pour la télécharger directement sur votre serveur.

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

Installer Apache avec SSL/TLS

Affichez toutes les options d'installation et de configuration Apache disponibles, comme indiqué ci-dessous.

cd httpd-2.4.2
./configure --help

Pour installer un module Apache, vous diriez généralement –enable-{module-name}. Par exemple, pour installer SSL avec Apache, c'est –enable-ssl. Pour installer le module ldap, c'est –enable-ldap.

Pour désinstaller tout module par défaut fourni avec Apache, vous diriez généralement –disable-{module-name}. Par exemple, pour désactiver l'authentification de base dans Apache, c'est –disable-auth-basic

Dans cet exemple, nous allons installer Apache avec tous les modules par défaut, avec l'ajout de –enable-ssl (pour installer mod_ssl pour le support SSL), et –enable-so, qui aide à charger les modules dans Apache pendant l'exécution via le Dynamic Shared Mécanisme d'objet (DSO), plutôt que de nécessiter une recompilation.

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

Remarque :Par défaut, ce qui précède installe Apache sous /usr/local/apache2. Si vous souhaitez modifier cet emplacement, utilisez l'option –prefix dans le ./configure.

Correction des messages d'erreur de l'utilitaire APR

Vous n'avez peut-être pas rencontré ce problème lors de l'installation d'une ancienne version d'Apache, comme nous en avons discuté il y a quelque temps.

Lorsque vous exécutez le "make", vous pouvez obtenir "rotatelogs.c:(.text+0x5ed):référence non définie à `apr_file_link' ” message d'erreur si vous faites cela sur CentOS 6.2 comme indiqué ci-dessous.

# 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

En effet, sur CentOS 6, la dernière version APR disponible via l'installation de yum est la 1.3.9, comme indiqué ci-dessous.

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

Cependant, Apache 2.4.2 a besoin de la dernière version d'APR (actuellement 1.4.6).

Allez donc sur la page de téléchargement APR et téléchargez apr et 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

Maintenant, vous devez placer cette nouvelle version des répertoires apr et apr-util (sans le nom de la version dans le répertoire) sous le répertoire "srclib" situé sous le répertoire httpd-2.4.2 qui a été créé lorsque vous avez décompressé le logiciel apache téléchargé.

Dans mon exemple, j'ai téléchargé le httpd-2.4.2.tar.gz et l'ai décompressé sous /usr/src. Donc, je dois placer les derniers apr et apr-util dans ce répertoire.

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

Une fois cela fait, nous devons le configurer et le refaire. Si vous exécutez le ./configure -help, vous verrez les options suivantes liées à 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

Si vous décidez d'installer apr-1.4.6 et apr-util-1.4.1 sur votre système, vous devez utiliser "-with-apr" et "-with-apr-util" et fournir le chemin où vous les avez installés utilitaire.

Dans cet exemple, nous n'avons pas fait cela. c'est-à-dire que nous n'avons pas installé l'apr et l'apr-util que nous avons téléchargés. Au lieu de cela, nous les avons placés sous httpd-2.4.2/srclib/apr-util. Donc, nous devrions utiliser "-with-included-apr" dans le ./configure qui utilisera ces apr et apr-util uniquement pour la compilation et l'installation d'Apache.

Alors, reprenons le ./configure (en utilisant -with-included-apr), make et make install comme indiqué ci-dessous.

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

Maintenant, make ne donnera plus le message d'erreur "rotatelogs.c:(.text+0x5ed):référence non définie au `apr_file_link".

Activer SSL dans httpd.conf

Le fichier de configuration Apache httpd.conf se trouve sous /usr/local/apache2/conf.

Décommentez la ligne httpd-ssl.conf Include et la ligne LoadModule ssl_module dans le fichier /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

Consultez le fichier httpd-ssl.conf pour passer en revue toutes les configurations SSL par défaut. Dans la plupart des cas, vous n'avez rien à modifier dans ce fichier.

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

Le certificat SSL et la clé sont requis avant de démarrer Apache. Les fichiers server.crt et server.key mentionnés dans httpd-ssl.conf doivent être créés avant de continuer.

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

Créer les fichiers server.crt et server.key

Tout d'abord, générez le server.key en utilisant openssl.

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

La commande ci-dessus demandera le mot de passe. Assurez-vous de vous souvenir de ce mot de passe. Vous en aurez besoin pour démarrer votre Apache plus tard.

Ensuite, générez un fichier de demande de certificat (server.csr) à l'aide du fichier server.key ci-dessus.

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

Enfin, générez un certificat SSL auto-signé (server.crt) à l'aide des fichiers server.key et server.csr ci-dessus.

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

Une fois que vous avez terminé les étapes ci-dessus, vous verrez les trois fichiers suivants sous /usr/src

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

Copiez les fichiers server.key et server.crt à l'emplacement approprié du répertoire de configuration Apache.

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

Démarrer Apache

Si vous obtenez le message d'erreur ci-dessous, assurez-vous de décommenter la ligne indiquée ci-dessous dans 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

Si vous obtenez le message d'erreur ci-dessous, assurez-vous de décommenter la ligne indiquée ci-dessous dans 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

Enfin, cela vous demandera d'entrer le mot de passe de votre clé privée avant de démarrer apache.

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

Vérifiez que le processus Apache httpd s'exécute en arrière-plan

# 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

Pour arrêter apache, utilisez apachectl stop.

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

Utilisez httpd -l pour afficher tous les modules qui sont compilés dans le démon Apache httpd.

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

Par défaut, Apache SSL s'exécute sur le port 443. Ouvrez un navigateur Web et vérifiez que vous pouvez accéder à votre Apache en utilisant https://{your-ip-address}


Linux
  1. Comment installer Let's Encrypt avec Apache sur CentOS 7

  2. Comment installer la sécurité des mods sur Centos 7.x avec apache ?

  3. Comment installer Let's Encrypt SSL avec Apache sur Debian 11

  4. Installer Apache 2 à partir de la source sur Linux

  5. Comment installer Apache CouchDB sur CentOS 6 (à partir de Source et EPEL)

Comment installer Apache avec l'hôte virtuel sur CentOS 8

Comment installer Apache Tomcat 9 sur CentOS 7

Comment installer Apache dans CentOS 8

Comment installer Drupal sur CentOS 7 avec Apache

Comment installer WordPress sur CentOS 7.1 avec Apache

Comment installer Apache avec PHP-FPM sur CentOS 8