Cara Menyiapkan pelayan Apache mandiri dengan hosting maya berasaskan nama dengan sijil SSL - Bahagian 4

Cara Menyiapkan pelayan Apache mandiri dengan hosting maya berasaskan nama dengan sijil SSL - Bahagian 4

A Lfce (ringkasan untuk Jurutera Bersertifikat Yayasan Linux) adalah profesional terlatih yang mempunyai kepakaran untuk memasang, mengurus, dan menyelesaikan masalah rangkaian dalam sistem Linux, dan bertanggungjawab terhadap reka bentuk, pelaksanaan dan penyelenggaraan seni bina sistem yang berterusan.

Dalam artikel ini, kami akan menunjukkan kepada anda cara mengkonfigurasi Apache untuk melayani kandungan web, dan bagaimana untuk menubuhkan tuan rumah maya berasaskan nama dan SSL, termasuk sijil yang ditandatangani sendiri.

Jurutera Bersertifikat Yayasan Linux - Bahagian 4

Memperkenalkan Program Persijilan Yayasan Linux (LFCE).

Catatan: Bahawa artikel ini tidak sepatutnya menjadi panduan komprehensif di Apache, melainkan titik permulaan untuk belajar sendiri mengenai topik ini untuk Lfce peperiksaan. Atas sebab itu kita tidak meliputi pengimbangan beban dengan Apache dalam tutorial ini sama ada.

Anda mungkin sudah mengetahui cara lain untuk melaksanakan tugas yang sama, iaitu okey Memandangkan pensijilan Yayasan Linux adalah berasaskan prestasi yang ketat. Oleh itu, selagi anda 'menyelesaikan pekerjaan', anda memberi peluang yang baik untuk lulus peperiksaan.

Keperluan

Sila rujuk Bahagian 1 dari siri semasa ("Memasang Perkhidmatan Rangkaian dan Mengkonfigurasi Permulaan Automatik di Boot") untuk arahan untuk memasang dan memulakan Apache.

Sekarang, anda harus memasang pelayan web Apache yang dipasang dan dijalankan. Anda boleh mengesahkannya dengan arahan berikut.

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

Catatan: Bahawa perintah di atas cek untuk kehadiran sama ada Apache atau httpd (nama yang paling biasa untuk daemon web) di antara senarai proses berjalan. Sekiranya Apache berjalan, anda akan mendapat output yang serupa dengan yang berikut.

Semak proses Apache

Kaedah utama untuk menguji pemasangan Apache dan memeriksa sama ada ia berjalan melancarkan pelayar web dan menunjuk ke IP pelayan. Kita harus dibentangkan dengan skrin berikut atau sekurang -kurangnya mesej yang mengesahkan bahawa Apache sedang berfungsi.

Semak laman web Apache

Mengkonfigurasi Apache

Fail konfigurasi utama untuk Apache boleh ditempatkan di direktori yang berbeza bergantung pada pengedaran anda.

/etc/apache2/apache2.conf [untuk ubuntu]/etc/httpd/conf/httpd.conf [untuk centOS]/etc/apache2/httpd.conf [untuk opensuse] 

Nasib baik untuk kami, arahan konfigurasi didokumentasikan dengan sangat baik di laman web projek Apache. Kami akan merujuk kepada sebahagian daripada mereka sepanjang artikel ini.

Melayani halaman di pelayan mandiri dengan Apache

Penggunaan Apache yang paling asas adalah untuk melayani laman web dalam pelayan mandiri di mana tiada tuan rumah maya telah dikonfigurasikan. The Documentroot Arahan Menentukan direktori di mana Apache akan menyampaikan dokumen laman web.

Perhatikan bahawa secara lalai, semua permintaan diambil dari direktori ini, tetapi anda juga boleh menggunakan pautan simbolik dan / atau alias boleh digunakan untuk menunjuk ke lokasi lain juga.

Kecuali dipadankan oleh Alias Arahan (yang membolehkan dokumen disimpan dalam sistem fail tempatan dan bukannya di bawah direktori yang ditentukan oleh Documentroot), pelayan menambahkan jalan dari url yang diminta ke akar dokumen untuk membuat laluan ke dokumen.

Contohnya, diberi perkara berikut Documentroot:

Apache Documentroot

Apabila penyemak imbas web menunjuk ke [IP pelayan atau Nama Host]/lfce/tecmint.html, Pelayan akan dibuka /var/www/html/lfce/tecmint.html (dengan mengandaikan bahawa fail tersebut wujud) dan simpan acara ke log aksesnya dengan a 200 (okey) tindak balas.

Log akses biasanya dijumpai di dalam /var/log di bawah nama wakil, seperti akses.log atau Access_log. Anda juga boleh menemui log ini (dan log ralat juga) di dalam subdirektori (contohnya, /var/log/httpd di centos). Jika tidak, acara gagal masih akan dilog masuk ke log akses tetapi dengan 404 (Tidak dijumpai) tindak balas.

Log Akses Apache

Di samping itu, peristiwa gagal akan direkodkan di log ralat:

Log ralat Apache

Format log akses boleh disesuaikan mengikut keperluan anda menggunakan LogFormat Arahan dalam fail konfigurasi utama, sedangkan anda tidak boleh melakukan perkara yang sama dengan log ralat.

Format lalai dari log akses adalah seperti berikut:

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

Di mana setiap huruf yang didahului oleh tanda peratus menunjukkan pelayan untuk log sekeping maklumat tertentu:

Tali Penerangan
 %h  Nama hos jauh atau alamat IP
 %l  Nama log jauh
 %u  Pengguna jauh jika permintaan disahkan
 %t  Tarikh dan masa apabila permintaan diterima
 %r  Baris permintaan pertama ke pelayan
 %> s  Status akhir permintaan
 %b  Saiz tindak balas [bait]

dan nama samaran adalah alias pilihan yang boleh digunakan untuk menyesuaikan kayu lain tanpa perlu memasukkan keseluruhan rentetan konfigurasi.

Anda boleh merujuk kepada LogFormat Arahan [Seksyen Format Log Custom] dalam dokumen Apache untuk pilihan selanjutnya.

Kedua -dua fail log (akses dan ralat) mewakili sumber yang hebat untuk cepat menganalisis sekilas apa yang berlaku di pelayan Apache. Tidak perlu dikatakan, mereka adalah alat pertama yang digunakan oleh pentadbir sistem untuk menyelesaikan masalah.

Akhirnya, satu lagi arahan penting adalah Dengarkan, yang memberitahu pelayan untuk menerima permintaan masuk pada gabungan port atau alamat/port yang ditentukan:

Sekiranya hanya nombor port yang ditakrifkan, Apache akan mendengarkan port yang diberikan pada semua antara muka rangkaian (tanda wildcard * digunakan untuk menunjukkan 'semua antara muka rangkaian').

Sekiranya kedua -dua alamat IP dan port ditentukan, maka Apache akan mendengar gabungan antara muka pelabuhan dan rangkaian yang diberikan.

Sila ambil perhatian (seperti yang anda lihat dalam contoh di bawah) bahawa pelbagai arahan mendengar boleh digunakan pada masa yang sama untuk menentukan pelbagai alamat dan pelabuhan untuk mendengar. Pilihan ini mengarahkan pelayan untuk menjawab permintaan dari mana -mana alamat dan pelabuhan yang disenaraikan.

Menyediakan tuan rumah maya berasaskan nama

Konsep tuan rumah maya mentakrifkan tapak individu (atau domain) yang disampaikan oleh mesin fizikal yang sama. Sebenarnya, pelbagai tapak / domain boleh dihidangkan dari satu ""nyata""Pelayan sebagai tuan rumah maya. Proses ini telus kepada pengguna akhir, yang ternyata laman web yang berbeza disampaikan oleh pelayan web yang berbeza.

Hosting maya berasaskan nama membolehkan pelayan bergantung kepada klien untuk melaporkan nama hos sebagai sebahagian daripada tajuk HTTP. Oleh itu, menggunakan teknik ini, banyak tuan rumah yang berbeza dapat berkongsi alamat IP yang sama.

Setiap tuan rumah maya dikonfigurasikan dalam direktori dalam Documentroot. Untuk kes kami, kami akan menggunakan domain dummy berikut untuk persediaan ujian, masing -masing terletak di direktori yang sepadan:

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

Agar halaman dipaparkan dengan betul, kami akan chmod setiap direktori virtualhost ke 755:

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

Seterusnya, buat sampel indeks.html fail di dalam setiap public_html Direktori:

  www.Ilovelinux.com   

Ini adalah halaman utama www.Ilovelinux.com

Akhirnya, dalam Centos dan opensuse Tambahkan bahagian berikut di bahagian bawah /etc/httpd/conf/httpd.Conf atau /etc/apache2/httpd.Conf, masing -masing, atau hanya mengubahnya jika sudah ada.

 ServerAdmin [dilindungi e -mel] DocumentRoot/var/www/html/ilovelinux.com/public_html ServerName www.Ilovelinux.com serveralias www.Ilovelinux.com ilovelinux.com errorlog/var/www/html/ilovelinux.com/ralat.Log LogFormat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customlog/var/www/html/ilovelinux.com/akses.log myvhost serveradmin [dilindungi e -mel] Documentroot/var/www/html/linuxrocks.org/public_html ServerName www.Linuxrocks.Org Serveralias www.Linuxrocks.org linuxrocks.Org errorlog/var/www/html/linuxrocks.org/ralat.Log LogFormat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customlog/var/www/html/linuxrocks.org/akses.log myvhost  

Sila ambil perhatian bahawa anda juga boleh menambah setiap definisi tuan rumah maya dalam fail berasingan di dalam /etc/httpd/conf.d direktori. Jika anda memilih untuk berbuat demikian, setiap fail konfigurasi mesti dinamakan seperti berikut:

/etc/httpd/conf.d/ilovelinux.com.conf/etc/httpd/conf.d/linuxrocks.org.Conf 

Dengan kata lain, anda perlu menambah .Conf ke laman web atau nama domain.

Dalam Ubuntu, Setiap fail konfigurasi individu dinamakan /etc/apache2/tapak-tersedia/[nama tapak].Conf. Setiap laman web kemudian diaktifkan atau dilumpuhkan dengan a2ensite atau a2dissite Perintah, masing -masing, seperti berikut.

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

The a2ensite dan a2dissite Perintah membuat pautan ke fail konfigurasi hos maya dan tempat (atau keluarkan) mereka di /etc/apache2/enabled tapak direktori.

Untuk dapat melayari kedua -dua tapak dari kotak Linux yang lain, anda perlu menambah baris berikut di /etc/hos fail dalam mesin itu untuk mengalihkan permintaan ke domain tersebut ke alamat IP tertentu.

[Alamat IP pelayan web anda] www.Ilovelinux.com [alamat ip pelayan web anda] www.Linuxrocks.org 

Sebagai langkah keselamatan, Selinux tidak akan membenarkan Apache untuk menulis log ke direktori selain daripada lalai /var/log/httpd.

Anda boleh melumpuhkan selinux, atau menetapkan konteks keselamatan yang betul:

# CHCON System_u: Object_r: httpd_log_t: s0/var/www/html/xxxxxx/ralat.log 

di mana xxxxxx adalah direktori di dalam /var/www/html di mana anda telah menentukan tuan rumah maya anda.

Setelah memulakan semula Apache, anda harus melihat halaman berikut di alamat di atas:

Semak Apache VirtualHosts

Memasang dan mengkonfigurasi SSL dengan Apache

Akhirnya, kami akan membuat dan memasang a ditandatangani sendiri sijil untuk digunakan dengan Apache. Persediaan semacam ini boleh diterima dalam persekitaran kecil, seperti LAN swasta.

Walau bagaimanapun, jika pelayan anda akan mendedahkan kandungan ke dunia luar melalui internet, anda akan mahu memasang sijil yang ditandatangani oleh pihak ke -3 untuk menyokong keasliannya. Sama ada cara, sijil akan membolehkan anda menyulitkan maklumat yang dihantar ke, dari, atau di dalam laman web anda.

Dalam Centos dan opensuse, anda perlu memasang mod_ssl pakej.

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

Sedangkan dalam Ubuntu Anda mesti mengaktifkan modul SSL untuk Apache.

# a2enmod ssl 

Langkah -langkah berikut dijelaskan menggunakan a Centos pelayan ujian, tetapi persediaan anda hampir sama dengan pengagihan lain (jika anda menghadapi sebarang isu, jangan ragu untuk meninggalkan soalan anda menggunakan borang komen).

Langkah 1 [Pilihan]: Buat direktori untuk menyimpan sijil anda.

# mkdir/etc/httpd/ssl-certs 

Langkah 2: Menjana sijil 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 ringkas mengenai pilihan yang disenaraikan di atas:

  1. Req -x509 menunjukkan bahawa kami membuat sijil x509.
  2. -nod (Tidak ada des) bermaksud ""Jangan menyulitkan kunci"".
  3. -Hari 365 adalah bilangan hari sijil akan sah untuk.
  4. -Newkey RSA: 2048 mewujudkan kunci RSA 2048-bit.
  5. -keyout/etc/httpd/ssl-certs/apache.kunci adalah jalan mutlak kunci RSA.
  6. -keluar/etc/httpd/ssl-certs/apache.Crt adalah jalan mutlak sijil.
Buat Sijil SSL Apache

Langkah 3: Buka fail konfigurasi hos maya yang anda pilih (atau bahagian yang sepadan di /etc/httpd/conf/httpd.Conf seperti yang dijelaskan sebelumnya) dan tambahkan baris berikut ke pengisytiharan tuan rumah maya mendengar di port 443.

Sslengine pada sslcertificatefile/etc/httpd/ssl-certs/apache.CRT SSLCertificateSeyFile/etc/httpd/ssl-certs/Apache.kunci 

Sila ambil perhatian bahawa anda perlu menambah.

Namevirtualhost *: 443 

di bahagian atas, betul di bawah

Namevirtualhost *: 80 

Kedua -dua arahan mengarahkan Apache untuk mendengar di pelabuhan 443 dan 80 dari semua antara muka rangkaian.

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

Arahan Apache VirtualHost

Kemudian mulakan semula Apache,

# perkhidmatan apache2 mulakan semula [sistem sysvinit dan upstart] # Systemctl mulakan semula httpd.Perkhidmatan [Sistem berasaskan SystemD] 

Dan arahkan penyemak imbas anda ke https: // www.Ilovelinux.com. Anda akan dibentangkan dengan skrin berikut.

Semak Sijil SSL Apache

Teruskan dan klik pada ""Saya faham risiko""Dan""Tambah pengecualian"".

Amaran Ceritficate Apache

Akhirnya, periksa ""Menyimpan pengecualian ini secara kekal""Dan klik""Sahkan Pengecualian Keselamatan"".

Tambah Ceritficate SSL

Dan anda akan dialihkan ke halaman rumah anda menggunakan https.

Apache HTTPS didayakan

Ringkasan

Dalam siaran ini kami telah menunjukkan cara mengkonfigurasi Apache dan berasaskan nama hosting maya dengan SSL Untuk menjamin penghantaran data. Sekiranya atas sebab tertentu anda menghadapi sebarang isu, jangan ragu untuk memberitahu kami menggunakan borang komen di bawah. Kami akan lebih senang membantu anda melakukan persediaan yang berjaya.

Baca juga

  1. Apache IP berasaskan dan nama hosting maya berasaskan
  2. Mewujudkan tuan rumah maya Apache dengan membolehkan/melumpuhkan pilihan VHOSTS
  3. Pantau ""pelayan web Apache"" menggunakan alat ""Apache GUI""
Menjadi Jurutera Bersertifikat Linux"