GNU/Linux >> Belajar Linux >  >> Linux

Cara Menginstal Apache 2.4.2 dari Sumber di CentOS 6.2 dengan SSL

Jika Anda mencoba mengikuti artikel cara menginstal Apache dengan SSL yang kami bahas beberapa waktu lalu, Anda akan menghadapi masalah saat "membuat" karena kompatibilitas versi antara Apache 2.4.4 dan utilitas APR (Apache Portable Runtime Library) yang datang dengan CentOS 6.

Kami telah menjelaskan dalam artikel ini cara mengatasi masalah tersebut agar Apache terbaru bekerja di CentOS atau RedHat.

Pastikan Anda telah menginstal gcc dan openssl-devel.

# yum install gcc
# yum install openssl-devel

Anda juga memerlukan April “Apache Portable Runtime Library” untuk menginstal Apache dari sumber.

Anda sudah menginstal paket "apr" dan "apr-util". Instal paket apr-devel dan apr-util-devel.

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

Catatan:Dalam kasus kami (karena masalah kompatibilitas versi), kami akan mengunduh ini dan menginstalnya secara manual nanti. Namun, mari kita ikuti arus untuk saat ini dan lihat apa yang terjadi jika Anda mencoba melakukannya dengan cara ini.

Unduh Apache

Unduh Apache dari httpd.apache.org. Rilis stabil saat ini adalah 2.4.2.

Setelah Anda mendapatkan URL langsung untuk mengunduh Apache versi stabil terbaru, gunakan wget seperti yang ditunjukkan di bawah ini untuk mengunduhnya langsung ke server Anda.

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

Instal Apache dengan SSL/TLS

Lihat semua opsi instalasi dan konfigurasi Apache yang tersedia seperti yang ditunjukkan di bawah ini.

cd httpd-2.4.2
./configure --help

Untuk menginstal modul Apache, Anda biasanya akan mengatakan –enable-{module-name}. Misalnya, untuk menginstal SSL dengan Apache, itu adalah –enable-ssl. Untuk menginstal modul ldap adalah –enable-ldap.

Untuk menghapus modul default apa pun yang disertakan dengan Apache, Anda biasanya akan mengatakan –disable-{module-name}. Misalnya, untuk menonaktifkan otentikasi dasar di Apache, itu adalah –disable-auth-basic

Dalam contoh ini, kita akan menginstal Apache dengan semua modul default, dengan tambahan –enable-ssl (untuk menginstal mod_ssl untuk dukungan SSL), dan –enable-so, yang membantu memuat modul di Apache selama run-time melalui Dynamic Shared Mekanisme objek (DSO), daripada membutuhkan kompilasi ulang.

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

Catatan:Secara default di atas menginstal Apache di bawah /usr/local/Apache2. Jika Anda ingin mengubah lokasi ini, gunakan opsi –prefix di ./configure.

Memperbaiki Pesan Kesalahan Utilitas APR

Anda mungkin tidak menghadapi masalah ini saat menginstal Apache versi lama seperti yang telah kita bahas beberapa waktu lalu.

Saat Anda menjalankan "make", Anda mungkin mendapatkan "rotatelogs.c:(.text+0x5ed):referensi undefined ke `apr_file_link' ” pesan kesalahan jika Anda melakukan ini pada CentOS 6.2 seperti yang ditunjukkan di bawah ini.

# 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

Ini karena pada CentOS 6, versi APR terbaru yang tersedia melalui instalasi yum adalah 1.3.9 seperti gambar di bawah ini.

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

Namun, Apache 2.4.2 membutuhkan versi terbaru APR (yang saat ini 1.4.6).

Jadi, buka halaman unduhan APR dan unduh apr dan 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

Sekarang, Anda harus menempatkan versi baru direktori apr dan apr-util ini (tanpa nama versi di direktori) di bawah direktori “srclib” yang terletak di bawah direktori httpd-2.4.2 yang dibuat saat Anda membuka kompresi perangkat lunak apache yang diunduh.

Dalam contoh saya, saya mengunduh httpd-2.4.2.tar.gz dan membuka kompresinya di bawah /usr/src. Jadi, saya perlu menempatkan apr dan apr-util terbaru di bawah direktori ini.

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

Setelah ini selesai, kita perlu mengkonfigurasi dan membuatnya lagi. Jika Anda menjalankan ./configure –help, Anda akan melihat opsi berikut yang terkait dengan 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

Jika Anda memutuskan untuk menginstal apr-1.4.6 dan apr-util-1.4.1 pada sistem Anda, Anda perlu menggunakan “–with-apr” dan “–with-apr-util” dan menyediakan jalur di mana Anda menginstal ini utilitas.

Dalam contoh ini, kami tidak melakukannya. yaitu Kami tidak menginstal apr dan apr-util yang kami unduh. Sebagai gantinya kami menempatkannya di bawah httpd-2.4.2/srclib/apr-util. Jadi, kita harus menggunakan “–with-included-apr” di ./configure yang akan menggunakan apr dan apr-util ini hanya untuk kompilasi dan instalasi Apache.

Jadi, mari kita ulangi ./configure (menggunakan –with-included-apr), make dan make install seperti gambar di bawah ini.

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

Sekarang, make tidak akan memberikan pesan kesalahan “rotatelogs.c:(.text+0x5ed):undefined reference to `apr_file_link” lagi.

Aktifkan SSL di httpd.conf

File konfigurasi Apache httpd.conf terletak di bawah /usr/local/apache2/conf.

Batalkan komentar pada baris Sertakan httpd-ssl.conf dan baris LoadModule ssl_module di file /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

Lihat httpd-ssl.conf untuk meninjau semua konfigurasi SSL default. Untuk sebagian besar kasus, Anda tidak perlu mengubah apa pun dalam file ini.

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

Sertifikat dan kunci SSL diperlukan sebelum kita memulai Apache. File server.crt dan server.key yang disebutkan dalam httpd-ssl.conf perlu dibuat sebelum kita melanjutkan.

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

Buat file server.crt dan server.key

Pertama, Buat server.key menggunakan openssl.

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

Perintah di atas akan meminta kata sandi. Pastikan untuk mengingat kata sandi ini. Anda memerlukan ini saat memulai Apache nanti.

Selanjutnya, buat file permintaan sertifikat (server.csr) menggunakan file server.key di atas.

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

Terakhir, buat sertifikat ssl yang ditandatangani sendiri (server.crt) menggunakan file server.key dan server.csr di atas.

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

Setelah Anda selesai dengan langkah-langkah di atas, Anda akan melihat tiga file berikut di bawah /usr/src

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

Salin file server.key dan server.crt ke lokasi direktori konfigurasi Apache yang sesuai.

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

Mulai Apache

Jika Anda mendapatkan pesan kesalahan di bawah ini, pastikan untuk menghapus komentar pada baris yang ditunjukkan di bawah ini di 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

Jika Anda mendapatkan pesan kesalahan di bawah ini, pastikan untuk menghapus komentar pada baris yang ditunjukkan di bawah ini di 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

Terakhir, ini akan meminta Anda untuk memasukkan kata sandi untuk kunci pribadi Anda sebelum memulai 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.

Verifikasi bahwa proses Apache httpd berjalan di latar belakang

# 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

Untuk menghentikan apache gunakan apachectl stop.

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

Gunakan httpd -l untuk melihat semua modul yang dikompilasi di dalam daemon httpd Apache.

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

Secara default Apache SSL berjalan pada port 443. Buka browser web dan verifikasi bahwa Anda dapat mengakses Apache Anda menggunakan https://{your-ip-address}


Linux
  1. Cara Menginstal Let's Encrypt dengan Apache di CentOS 7

  2. Instal Apache 2 dari Sumber di Linux

  3. Cara Instal Apache 2 dengan SSL di Linux (dengan mod_ssl, openssl)

  1. Bagaimana cara menginstal keamanan mod di Centos 7.x dengan apache?

  2. Cara Menginstal Let's Encrypt SSL dengan Apache di Debian 11

  3. Cara Menginstal Apache CouchDB di CentOS 6 (dari Sumber dan EPEL)

  1. Cara Menginstal Sertifikat SSL di Apache untuk CentOS 7

  2. Cara menginstal mod_ssl di RHEL 8 / CentOS 8 dengan server web httpd Apache

  3. Cara Menginstal WordPress dengan Apache di CentOS 7