Membuat Virtual Host, Menghasilkan Sertifikat & Kunci SSL dan Mengaktifkan CGI Gateway di Gentoo Linux
Tutorial terakhir tentang Menginstal LAMP di Gentoo Linux hanya membahas proses instalasi dasar tanpa tersedia pengaturan tambahan untuk Apache agar dapat mengontrol domain Anda dengan lebih baik.
Tutorial ini terkait erat dengan tutorial sebelumnya di Gentoo LAMP dan membahas pengaturan tambahan untuk lingkungan LAMP seperti membuat Virtual Hosts di Apache, menghasilkan SSL File dan Kunci Sertifikat, aktifkan protokol SSL yang aman pada transaksi HTTP dan gunakan CGI Gateway Apache sehingga Anda dapat menjalankan Perl atau Skrip Bash di situs web Anda.
Persyaratan
- Instal LAMP di Gentoo Linux
Langkah 1: Buat Host Virtual Apache
Topik ini menggunakan nama domain palsu – gentoo.lan – diaktifkan melalui file host lokal, dengan file situs web disajikan dari /var/www/gentoo.lan – DocumentRoot direktif , tanpa catatan DNS yang valid, untuk mendemonstrasikan bagaimana beberapa Virtual Host dapat diaktifkan di Gentoo menggunakan Server web Apache.
1. Untuk memulai, buka file host Gentoo untuk diedit dan tambahkan baris baru dengan nama domain Anda.
sudo nano /etc/hosts
Di akhir file buatlah terlihat seperti ini.
127.0.0.1 localhost gentoo
192.168.1.13 gentoo.lan
2. Uji domain palsu Anda dengan perintah ping dan domain tersebut akan merespons dengan alamat IP-nya.
ping -c2 gentoo.lan
3. Proses mengaktifkan Apache Virtual Hosts cukup sederhana. Cukup buka file host virtual default Apache yang terletak di jalur /etc/apache2/vhosts.d/ dan sebelum pernyataan terakhir, masukkan definisi Host Virtual baru Anda yang terlampir di bawah … arahan . C
Berisi pengaturan khusus Anda seperti jalur ServerName dan DocumentRoot. Gunakan templat file berikut sebagai panduan untuk Virtual Host baru dan sertakan di file 00_default_vhost.conf (untuk situs web non-SSL).
sudo nano /etc/apache2/vhosts.d/00_default_vhost.conf
## Another Virtual hosts statemes ending in </VirtualHost> ###
<VirtualHost *:80>
ServerName gentoo.lan
DocumentRoot "/var/www/gentoo.lan"
<Directory "/var/www/gentoo.lan"
Options Indexes FollowSymLinks ExecCGI MultiViews
# AllowOverride controls what directives may be placed in .htaccess files.
AllowOverride All
# Controls who can get stuff from this server file
Order allow,deny
Allow from all
</Directory>
<IfModule mpm_peruser_module>
ServerEnvironment apache apache
</IfModule>
</VirtualHost>
## Another Virtual hosts statemes ###
## LAST STATEMENT which closes virtual hosts file ##
</IfDefine>
Seperti yang dapat Anda lihat dengan memvisualisasikan konten file ini, file tersebut mendapat banyak komentar disertai penjelasan dan juga menyimpan definisi Host Virtual localhost – yang dapat Anda gunakan sebagai panduan.
4. Setelah selesai mengedit file dengan Virtual Host khusus Anda, mulai ulang Apache untuk menerapkan pengaturan dan pastikan Anda membuat direktori DocumentRoot jika Anda telah mengubah arahan ini dan jalurnya tidak tidak ada secara default (dalam hal ini diubah menjadi /var/www/gentoo.lan). Saya juga membuat file PHP kecil untuk menguji konfigurasi server web.
sudo mkdir /var/www/gentoo.lan
su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
sudo /etc/init.d/apache2 restart
5. Untuk memverifikasinya, buka browser dan arahkan ke nama domain virtual Anda http://gentoo.lan/info.php.
Dengan menggunakan prosedur ini Anda dapat menambahkan situs web non-SSL sebanyak yang Anda inginkan menggunakan Apache Virtual Host, tetapi untuk mesin yang terhubung ke Internet, pastikan domain Anda terdaftar dan Anda menggunakan catatan server DNS yang valid.
Untuk menghapus Virtual Host, cukup beri komentar atau hapus arahannya yang terlampir di bawah … pada file 00_default_vhost.conf.
Langkah 2: Buat Sertifikat dan Kunci SSL untuk Host Virtual
SSL adalah protokol kriptografi yang digunakan untuk bertukar informasi melalui saluran komunikasi aman di Internet atau di dalam jaringan menggunakan Sertifikat dan Kunci simetris/asimetris.
6. Untuk menyederhanakan proses pembuatan Sertifikat dan kunci, gunakan skrip Bash berikut yang bertindak sebagai perintah dan secara otomatis membuat semua yang Anda perlukan dengan pengaturan nama domain SSL Anda.
Pertama mulai dengan membuat skrip Bash menggunakan perintah berikut.
sudo nano /usr/local/bin/apache_gen_ssl
Tambahkan konten file berikut.
#!/bin/bash
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
echo -e "Enter a name for this certificate:\nEx: mydomain.lan"
read cert
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt
echo -e " The certificate $cert has been generated!\nPlease link it to Apache SSL website!"
ls -all /etc/apache2/ssl/
exit 0
7. Setelah file dibuat, tambahkan izin eksekusi pada file tersebut dan jalankan untuk menghasilkan Kunci dan Sertifikat SSL.
sudo chmod +x /usr/local/bin/apache_gen_ssl
sudo apache_gen_ssl
Saat Anda menjalankannya pertama kali, Anda akan diminta memasukkan nama domain Anda. Masukkan nama domain Anda yang pengaturan SSLnya Anda buat dan isi Sertifikat dengan informasi yang diperlukan, yang paling penting, Nama Umum, gunakan FQDN server Anda.
Lokasi default di mana semua Sertifikat dan Kunci Anda dihosting menggunakan metode ini adalah /etc/Apache2/ssl/.
8. Sekarang saatnya membuat gentoo.lan Virtual Host SSL yang setara. Gunakan metode yang sama seperti untuk Virtual Host non-SSL tetapi kali ini mengedit file /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf dengan sedikit perubahan.
Pertama buka file untuk diedit dan lakukan perubahan berikut.
sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf
Di bawah arahan Listen 443 tambahkan konten berikut.
NameVirtualHost *:443
Gunakan templat berikut untuk Virtual Host baru dan tambahkan Sertifikat SSL baru + Jalur kunci dan nama.
## Another Virtual hosts statemes ending in </VirtualHost> ###
<VirtualHost *:443>
ServerName gentoo.lan
DocumentRoot "/var/www/gentoo.lan"
ErrorLog /var/log/apache2/gentoo.lan-ssl_error_log
<IfModule log_config_module>
TransferLog /var/log/apache2/gentoo.lan-ssl_access_log
</IfModule>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
## Edit with new generated SSL certificate and key and change path to /etc/apache2/ssl/
SSLCertificateFile /etc/apache2/ssl/gentoo.lan.crt
SSLCertificateKeyFile /etc/apache2/ssl/gentoo.lan.key
<Directory "/var/www/gentoo.lan">
Options Indexes FollowSymLinks ExecCGI MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/www/gentoo.lan ">
SSLOptions +StdEnvVars
</Directory>
<IfModule setenvif_module>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</IfModule>
<IfModule log_config_module>
CustomLog /var/log/apache2/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</IfModule>
</VirtualHost>
## Another Virtual hosts statements ###
Definisi Virtual Host harus diakhiri sebelum tiga pernyataan terakhir ini.
</IfModule>
</IfDefine>
</IfDefine>
9. Setelah selesai mengedit file Virtual Host, restart layanan Apache dan arahkan browser Anda ke domain Anda menggunakan protokol HTTPS https://gentoo.lan.
sudo /etc/init.d/apache2 restart
Dengan menggunakan prosedur ini, Anda dapat menambahkan situs web SSL dengan Sertifikat dan Kuncinya sendiri menggunakan Apache Virtual Host. Untuk menghapus SSL Virtual Host, beri komentar atau hapus arahannya yang terlampir di bawah … pada file /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf.
Langkah 3: Aktifkan Antarmuka CGI
CGI (Common Gateway Interface) memungkinkan Apache berinteraksi dengan program eksternal, terutama yang terdiri dari skrip Perl atau BASH, yang dapat menambahkan konten dinamis ke situs web Anda.
10. Sebelum mengaktifkan gateway CGI pastikan Apache telah dikompilasi dengan dukungan flag modul USE CGI pada file make.conf Portage: cgi cgid . Untuk mengaktifkan dukungan GCI untuk Apache, buka file /etc/conf.d/Apache2 dan tambahkan modul CGI pada baris APACHE2_OPTS.
sudo nano /etc/conf.d/apache2
Pastikan baris ini memiliki konten serupa.
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"
11. Setelah modul CGI diaktifkan, buka host definisi situs web yang ingin Anda aktifkan antarmuka CGInya dan tambahkan konten berikut di dalam arahan Virtual Host.
<Directory "/var/www/gentoo.lan">
Options Indexes +ExecCGI MultiViews
AddHandler cgi-script .cgi .pl
DirectoryIndex index.cgi index.php index.html index.pl
AllowOverride All
Order allow,deny
Allow from all
</Directory>
12. Jika Anda memiliki direktori di dalam jalur DocumentRoot (/var/www/gentoo.lan/) yang menyimpan skrip CGI, Anda dapat mengaktifkan direktori tersebut saja untuk melayani Perl dinamis atau skrip Bash.
ScriptAlias /cgi-bin/ /var/www/gentoo.lan/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
AddHandler cgi-script .cgi .pl
DirectoryIndex index.cgi index.php index.html index.pl
</Location>
13. Untuk SSI (Server Side Includes) tambahkan pernyataan +Includes pada Options dan tambahkan ekstensi file .shtml.
<Directory "/var/www/gentoo.lan">
Options Indexes +ExecCGI +Includes
AddHandler cgi-script .cgi .pl
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
DirectoryIndex index.shtml index.cgi index.pl index.php index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
14. Untuk menguji beberapa skrip .cgi dan .pl sederhana di gateway Apache CGI, buat skrip berikut di dalam Virtual Host DocumentRoot Anda ( /var/www/gentoo.lan/).
Skrip Perl
sudo nano /var/www/gentoo.lan/env.pl
Tambahkan konten Perl berikut.
#!/usr/bin/perl
print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
$ENV{$keys}<br/>\n";
}
Skrip Bash
sudo nano /var/www/gentoo.lan/run.cgi
Tambahkan konten Bash berikut.
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "---------------------------------------------------------------------------------"
./env.pl
echo "---------------------------------------------------------------------------------"
15. Setelah file dibuat, buat file tersebut dapat dieksekusi, mulai ulang daemon Apache dan arahkan browser Anda ke URL berikut.
sudo chmod +x /var/www/gentoo.lan/run.cgi
sudo chmod +x /var/www/gentoo.lan/env.pl
sudo /etc/init.d/apache2 restart
https://gentoo.lan/run.cgi
OR
https://gentoo.lan/env.pl
Sekarang Anda dapat mengubah Gentoo menjadi platform hosting Web yang kuat dengan pengaturan yang tepat untuk kinerja sistem Anda dan kontrol maksimal atas seluruh lingkungan Anda.