Cara mengatur server apache mandiri dengan hosting virtual berbasis nama dengan sertifikat ssl - bagian 4

Cara mengatur server apache mandiri dengan hosting virtual berbasis nama dengan sertifikat ssl - bagian 4

A Lfce (kependekan dari Linux Foundation Certified Engineer) adalah seorang profesional terlatih yang memiliki keahlian untuk menginstal, mengelola, dan memecahkan masalah jaringan dalam sistem Linux, dan bertanggung jawab atas desain, implementasi, dan pemeliharaan arsitektur sistem yang berkelanjutan.

Dalam artikel ini kami akan menunjukkan kepada Anda cara mengkonfigurasi Apache untuk melayani konten web, dan cara mengatur host virtual berbasis nama dan SSL, termasuk sertifikat yang ditandatangani sendiri.

Linux Foundation Certified Engineer - Bagian 4

Memperkenalkan Program Sertifikasi Linux Foundation (LFCE).

Catatan: Bahwa artikel ini tidak seharusnya menjadi panduan komprehensif tentang Apache, tetapi lebih merupakan titik awal untuk belajar mandiri tentang topik ini untuk Lfce ujian. Untuk alasan itu kami juga tidak menutupi balancing beban dengan tutorial ini di tutorial ini.

Anda mungkin sudah tahu cara lain untuk melakukan tugas yang sama, yaitu OKE Mempertimbangkan bahwa sertifikasi Linux Foundation berbasis kinerja secara ketat. Jadi, selama Anda 'menyelesaikan pekerjaan', Anda memiliki peluang bagus untuk lulus ujian.

Persyaratan

Silakan merujuk ke Bagian 1 dari seri saat ini (“Menginstal Layanan Jaringan dan Mengkonfigurasi Startup Otomatis Saat Boot”) untuk instruksi tentang menginstal dan memulai Apache.

Sekarang, Anda harus menginstal dan menjalankan server web Apache. Anda dapat memverifikasi ini dengan perintah berikut.

# ps -ef | grep -ei '(Apache | httpd)' | grep -v grep 

Catatan: Bahwa perintah di atas memeriksa kehadiran keduanya Apache atau httpd (Nama yang paling umum untuk daemon web) di antara daftar proses berjalan. Jika Apache sedang berjalan, Anda akan mendapatkan output yang mirip dengan yang berikut ini.

Periksa proses Apache

Metode utama untuk menguji instalasi Apache dan memeriksa apakah berjalan meluncurkan browser web dan menunjuk ke IP server. Kita harus disajikan dengan layar berikut atau setidaknya pesan yang mengonfirmasi bahwa Apache berfungsi.

Periksa halaman web Apache

Mengkonfigurasi Apache

File konfigurasi utama untuk Apache dapat ditempatkan di berbagai direktori tergantung pada distribusi Anda.

/etc/apache2/apache2.conf [for ubuntu]/etc/httpd/conf/httpd.conf [for centos]/etc/apache2/httpd.conf [for opensuse] 

Untungnya bagi kami, arahan konfigurasi didokumentasikan dengan sangat baik di situs web Proyek Apache. Kami akan merujuk pada beberapa dari mereka di seluruh artikel ini.

Menyajikan halaman di server mandiri dengan Apache

Penggunaan Apache yang paling mendasar adalah untuk melayani halaman web di server mandiri di mana belum ada host virtual yang dikonfigurasi. Itu Root document Petunjuk Menentukan direktori dari mana Apache akan melayani dokumen halaman web.

Perhatikan bahwa secara default, semua permintaan diambil dari direktori ini, tetapi Anda juga dapat menggunakan tautan simbolik dan / atau alias dapat digunakan untuk menunjuk ke lokasi lain juga.

Kecuali dicocokkan dengan Alias Petunjuk (yang memungkinkan dokumen disimpan dalam sistem file lokal alih -alih di bawah direktori yang ditentukan oleh Root document), server menambahkan jalur dari URL yang diminta ke root dokumen untuk membuat jalur ke dokumen.

Misalnya, mengingat yang berikut ini Root document:

Apache Documentroot

Saat browser web menunjuk ke [IP server atau nama host]/lfce/tecmint.html, server akan terbuka /var/www/html/lfce/tecmint.html (dengan asumsi bahwa file tersebut ada) dan simpan acara tersebut ke log aksesnya dengan a 200 (OKE) tanggapan.

Log akses biasanya ditemukan di dalam /var/log dengan nama yang representatif, seperti mengakses.catatan atau Access_log. Anda bahkan dapat menemukan log ini (dan log kesalahan juga) di dalam subdirektori (misalnya, /var/log/httpd di centos). Kalau tidak, acara yang gagal masih akan dicatat ke log akses tetapi dengan a 404 (Tidak ditemukan) respons.

Log Akses Apache

Selain itu, acara yang gagal akan direkam di catatan eror:

Log kesalahan apache

Format dari Akses Log dapat disesuaikan sesuai dengan kebutuhan Anda menggunakan Format log Petunjuk dalam file konfigurasi utama, sedangkan Anda tidak dapat melakukan hal yang sama dengan catatan eror.

Format default dari Akses Log adalah sebagai berikut:

LogFormat " %h %l %u %t \" %r \ "" %> s %b"" [nama panggilan] 

Di mana masing -masing huruf didahului dengan tanda persen menunjukkan server untuk mencatat informasi tertentu:

Rangkaian Keterangan
 %H  Nama host jarak jauh atau alamat IP
 %l  Nama log jarak jauh
 %u  Pengguna jarak jauh jika permintaan ini diautentikasi
 %T  Tanggal dan waktu saat permintaan diterima
 %R  Baris permintaan pertama ke server
 %> s  Status akhir dari permintaan tersebut
 %B  Ukuran respons [byte]

Dan nama panggilan adalah alias opsional yang dapat digunakan untuk menyesuaikan log lain tanpa harus memasukkan seluruh string konfigurasi lagi.

Anda dapat merujuk ke Format log Petunjuk [bagian Format Log Kustom] di APACHE Documents untuk opsi lebih lanjut.

Kedua file log (mengakses Dan kesalahan) mewakili sumber yang bagus untuk menganalisis dengan cepat secara langsung apa yang terjadi di server Apache. Tak perlu dikatakan, mereka adalah alat pertama yang digunakan administrator sistem untuk memecahkan masalah.

Akhirnya, arahan penting lainnya adalah Mendengarkan, yang memberitahu server untuk menerima permintaan yang masuk pada port atau kombinasi port/port yang ditentukan:

Jika hanya nomor port yang didefinisikan, Apache akan mendengarkan port yang diberikan pada semua antarmuka jaringan (tanda wildcard * digunakan untuk menunjukkan 'semua antarmuka jaringan').

Jika alamat IP dan port ditentukan, maka Apache akan mendengarkan kombinasi port dan antarmuka jaringan yang diberikan.

Harap dicatat (seperti yang akan Anda lihat dalam contoh di bawah) bahwa beberapa arahan mendengarkan dapat digunakan pada saat yang sama untuk menentukan beberapa alamat dan port untuk didengarkan. Opsi ini menginstruksikan server untuk menanggapi permintaan dari salah satu alamat dan port yang terdaftar.

Menyiapkan host virtual berbasis nama

Konsep host virtual mendefinisikan situs individu (atau domain) yang dilayani oleh mesin fisik yang sama. Sebenarnya, beberapa situs / domain dapat disajikan satu ""nyataServer sebagai host virtual. Proses ini transparan bagi pengguna akhir, kepada siapa tampaknya situs yang berbeda dilayani oleh server web yang berbeda.

Hosting virtual berbasis nama memungkinkan server mengandalkan klien untuk melaporkan nama host sebagai bagian dari header HTTP. Dengan demikian, menggunakan teknik ini, banyak host yang berbeda dapat berbagi alamat IP yang sama.

Setiap host virtual dikonfigurasi dalam direktori di dalam Root document. Untuk kasus kami, kami akan menggunakan domain dummy berikut untuk pengaturan pengujian, masing -masing terletak di direktori yang sesuai:

  1. Ilovelinux.com - /var/www/html/ilovelinux.com/public_html
  2. Linuxrocks.org - /var/www/html/linuxrocks.org/public_html

Agar halaman dapat ditampilkan dengan benar, kami akan melakukannya Chmod setiap direktori virtualhost 755:

# chmod -r 755/var/www/html/ilovelinux.com/public_html # chmod -r 755/var/www/html/linuxrocks.org/public_html 

Selanjutnya, buat sampel indeks.html file di dalam masing -masing public_html direktori:

  www.Ilovelinux.com   

Ini adalah halaman utama www.Ilovelinux.com

Akhirnya, di Centos Dan OpenSuse Tambahkan bagian berikut di bagian bawah /etc/httpd/conf/httpd.conf atau /etc/apache2/httpd.conf, masing -masing, atau hanya memodifikasinya jika sudah ada.

 ServerAdmin [email dilindungi] DocumentRoot/var/www/html/ilovelinux.com/public_html servername www.Ilovelinux.com ServeralIas www.Ilovelinux.com ilovelinux.com errorLog/var/www/html/ilovelinux.com/error.Log LogFormat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customlog/var/www/html/ilovelinux.com/akses.log myvhost serveradmin [email dilindungi] documentroot/var/www/html/linuxrocks.org/public_html servername www.Linuxrocks.org Serveralias www.Linuxrocks.org linuxrocks.org errorLog/var/www/html/linuxrocks.org/kesalahan.Log LogFormat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customlog/var/www/html/linuxrocks.org/akses.log myvhost  

Harap dicatat bahwa Anda juga dapat menambahkan setiap definisi host virtual dalam file terpisah di dalam /etc/httpd/conf.D direktori. Jika Anda memilih untuk melakukannya, setiap file konfigurasi harus dinamai sebagai berikut:

/etc/httpd/conf.d/ilovelinux.com.conf/etc/httpd/conf.D/Linuxrocks.org.conf 

Dengan kata lain, Anda perlu menambahkan .conf ke situs atau nama domain.

Di dalam Ubuntu, Setiap file konfigurasi individu dinamai /etc/apache2/situs-tersedia/[Nama Situs].conf. Setiap situs kemudian diaktifkan atau dinonaktifkan dengan a2ensite atau A2DISSITE Perintah, masing -masing, sebagai berikut.

# a2ensite/etc/apache2/situs-tersedia/ilovelinux.com.conf # a2dissite/etc/apache2/situs-tersedia/ilovelinux.com.conf # a2ensite/etc/apache2/situs-tersedia/linuxrocks.org.conf # a2dissite/etc/apache2/situs-tersedia/linuxrocks.org.conf 

Itu a2ensite Dan A2DISSITE Perintah Buat tautan ke file konfigurasi host virtual dan tempat (atau hapus) di /etc/apache2/diaktifkan situs direktori.

Untuk dapat menelusuri kedua situs dari kotak Linux lain, Anda perlu menambahkan baris berikut di /etc/host file di mesin itu untuk mengarahkan kembali permintaan ke domain tersebut ke alamat IP tertentu.

[Alamat IP server web Anda] www.Ilovelinux.com [alamat IP server web Anda] www.Linuxrocks.org 

Sebagai tindakan keamanan, Selinux tidak akan mengizinkan Apache untuk menulis log ke direktori selain default /var/log/httpd.

Anda dapat menonaktifkan Selinux, atau mengatur konteks keamanan yang tepat:

# chcon system_u: object_r: httpd_log_t: s0/var/www/html/xxxxxx/error.catatan 

Di mana xxxxxx adalah direktori di dalamnya /var/www/html Di mana Anda telah mendefinisikan host virtual Anda.

Setelah memulai kembali Apache, Anda akan melihat halaman berikut di alamat di atas:

Periksa Apache Virtualhosts

Menginstal dan Mengkonfigurasi SSL dengan Apache

Akhirnya, kami akan membuat dan menginstal menandatangani sendiri Sertifikat untuk digunakan dengan Apache. Pengaturan semacam ini dapat diterima di lingkungan kecil, seperti LAN pribadi.

Namun, jika server Anda akan mengekspos konten ke dunia luar melalui internet, Anda akan ingin menginstal sertifikat yang ditandatangani oleh pihak ke -3 untuk menguatkan keasliannya. Either way, sertifikat akan memungkinkan Anda untuk mengenkripsi informasi yang ditransmisikan ke, dari, atau di dalam situs Anda.

Di dalam Centos Dan OpenSuse, Anda perlu menginstal mod_ssl kemasan.

# yum update && yum install mod_ssl [on centos] # zypper refresh && zypper install mod_ssl [on openSuse] 

Sedangkan di Ubuntu Anda harus mengaktifkan modul SSL untuk Apache.

# A2Enmod SSL 

Langkah -langkah berikut dijelaskan menggunakan a Centos Uji server, tetapi pengaturan Anda harus hampir identik di distribusi lain (jika Anda mengalami masalah apa pun, jangan ragu untuk meninggalkan pertanyaan Anda menggunakan formulir komentar).

Langkah 1 [Opsional]: Buat direktori untuk menyimpan sertifikat Anda.

# mkdir/etc/httpd/ssl-certs 

Langkah 2: Menghasilkan sertifikat yang ditandatangani sendiri dan kunci yang akan melindunginya.

# OpenSSL Req -x509 -Nodes -days 365 -NewKey RSA: 2048 -Keyout/etc/httpd/ssl -certs/apache.kunci -out/etc/httpd/ssl -certs/apache.crt 

Penjelasan singkat tentang opsi yang tercantum di atas:

  1. Req -x509 menunjukkan kami membuat sertifikat x509.
  2. -node (Tidak ada des) berarti ""jangan mengenkripsi kunci"".
  3. -Hari 365 adalah jumlah hari sertifikat akan berlaku untuk.
  4. -Newkey RSA: 2048 Membuat kunci RSA 2048-bit.
  5. -Keyout/etc/httpd/ssl-certs/apache.kunci adalah jalur absolut dari kunci RSA.
  6. -out/etc/httpd/ssl-certs/apache.crt adalah jalur absolut dari sertifikat.
Buat Sertifikat Apache SSL

Langkah 3: Buka file konfigurasi host virtual yang Anda pilih (atau bagian yang sesuai di /etc/httpd/conf/httpd.conf seperti yang dijelaskan sebelumnya) dan tambahkan baris berikut ke deklarasi host virtual mendengarkan di port 443.

Sslengine di sslcertificateFile/etc/httpd/ssl-certs/apache.crt sslcertificateKeyFile/etc/httpd/ssl-certs/apache.kunci 

Harap dicatat bahwa Anda perlu menambahkan.

Namevirtualhost *: 443 

Di bagian atas, tepat di bawah

Namevirtualhost *: 80 

Kedua arahan menginstruksikan Apache untuk mendengarkan di port 443 Dan 80 dari semua antarmuka jaringan.

Contoh berikut diambil dari /etc/httpd/conf/httpd.conf:

Arahan Apache VirtualHost

Kemudian restart Apache,

# Service APACHE2 RESTART [SYSVINIT dan Sistem Berbasis Upstart] # SystemCTL Restart httpd.Layanan [Sistem Berbasis SystemD] 

Dan arahkan browser Anda ke https: // www.Ilovelinux.com. Anda akan disajikan dengan layar berikut.

Periksa sertifikat Apache SSL

Silakan dan klik ""Saya mengerti risikonya"" Dan ""Tambahkan pengecualian"".

Peringatan ceritficate apache

Akhirnya, periksa ""Simpan pengecualian ini secara permanen""Dan klik""Konfirmasi Pengecualian Keamanan"".

Tambahkan SSL Ceritficate

Dan Anda akan diarahkan ke halaman rumah Anda menggunakan https.

APACHE HTTPS Diaktifkan

Ringkasan

Dalam posting ini kami telah menunjukkan cara mengkonfigurasi Apache Dan berbasis nama hosting virtual dengan SSL untuk mengamankan transmisi data. Jika karena alasan tertentu Anda mengalami masalah apa pun, jangan ragu untuk memberi tahu kami menggunakan formulir komentar di bawah ini. Kami akan lebih dari senang membantu Anda melakukan pengaturan yang sukses.

Baca juga

  1. Apache IP Berbasis dan Hosting Virtual Berbasis Nama
  2. Membuat host virtual Apache dengan mengaktifkan/menonaktifkan opsi Vhosts
  3. Pantau ""Server Web Apache"" menggunakan alat ""Apache GUI""
Menjadi Insinyur Bersertifikat Linux"