Running Apache, PHP dan MySQL Server
-
Apache Web Server
Apache adalah salah satu web server paling terkemuka di dunia. Dia ini populer banget loh, ngalahin IIS (Internet Information Services)-nya Microsoft. Hampir 60% (begitu katanya) web server yang ada di seluruh dunia menggunakan apache (wheww).
Apache juga sudah include kok di FreeBSD 6.0. Tapi untuk menginstallnya kita butuh koneksi internet. Jadi sebelum melanjutkan ke langkah berikut ini, pastikan dulu server kita telah terkoneksi ke internet dengan baik dan benar .
Pertama-tama kita perlu menginstall apachenya dulu. Ada beberapa versi apache yang ada di FreeBSD 6.0 yaitu apache13, apache20, apache21, dan apache 22. Apache 13 artinya apache versi 1.3, Apache 20 berarti versi 2.0, Apache 2.1 berarti versi 2.1. Baiknya kita milih yang updetan terbaru aja yah. Sekarang ketikkan perintah di bawah ini.
# whereis apache22
Perintah diatas untuk memastikan dimana tempat asal paket apache versi 22 berada. Eksekusi perintah diatas akan menghasilkan alamat direktori yaitu: /usr/ports/www/apache22
Nah, kesanalah kita harusnya berada.
# cd /usr/ports/www/apache22
Sudah?? Sekarang ketikkan perintah berikut untuk memulai installasi apache versi 2.2 pada sistem FreeBSD kita.
# make install clean
File yang dibutuhkan pada installasi Apache ini adalah:
Agar apache dapat dijalankan jika komputer booting, maka kita perlu melakukan langkah-langkah sebagai berikut:
# ee /usr/local/etc/rc.d/apache22.sh
Carilah baris yang mengandung kata-kata berikut. (di sistem yang saya install ada pada baris ke-44):
[ -z "$apache22_enable" ] && apache22_enable=”NO”
Ubahlah NO menjadi YES, sehingga menjadi seperti berikut:
[ -z "$apache22_enable" ] && apache22_enable=”YES”
Sekarang, jalankan service apache22 Anda dengan mengetikkan perintah berikut ini:
# /usr/local/etc/rc.d/apache22.sh start
Maka sekarang Apache telah terinstall dengan baik pada komputer Anda.
-
PHP 5
Module PHP5 sudah include dalam ports FreeBSD loh, yang perlu kita lakukan adalah mencari tempat sumber paket tersebut berada. Ketikkan perintah dibawah ini untuk mengetahuinya.
# whereis php5
php5: /usr/ports/lang/php5
Nah, sekarang kita sudah tau dimana source php5 berada, kesanalah kita pergi sekarang.
# cd /usr/ports/lang/php5
Adapun perintah untuk menginstall PHP5 seperti berikut:
# make config install clean
File yang dibutuhkan dalam installasi php5 ini adalah
-
php-5.1.2.tar.bz2
-
pkg-config-0.20.tar.gz
-
libxml2-2.6.23.tar.bz2
Jika telah selesai, log dari installasi php5 pada sistem FreeBSD kita, kurang lebih seperti berikut ini:
***************************************************************
Make sure index.php is part of your DirectoryIndex.
You should add the following to your Apache configuration file:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
***************************************************************
===> Compressing manual pages for php5-5.2.0
===> Registering installation for php5-5.2.0
===> SECURITY REPORT:
This port has installed the following files, which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/apache/libphp5.so
/usr/local/bin/php
/usr/local/bin/php-cgi
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type ‘make deinstall’
to deinstall the port if this is a concern.
For more information, and contact details about the security
status of this software, see the following webpage:
http://www.php.net/
===> Cleaning for apache-1.3.37_1
===> Cleaning for autoconf-2.59_2
===> Cleaning for pkg-config-0.21
===> Cleaning for libxml2-2.6.26
===> Cleaning for perl-5.8.8
===> Cleaning for expat-2.0.0_1
===> Cleaning for m4-1.4.4
===> Cleaning for help2man-1.36.4_1
===> Cleaning for gmake-3.81_1
===> Cleaning for libiconv-1.9.2_2
===> Cleaning for p5-gettext-1.05_1
===> Cleaning for gettext-0.14.5_2
===> Cleaning for libtool-1.5.22_2
===> Cleaning for php5-5.2.0
Setelah selesai, bukalah file konfigurasi Apache.
# ee /usr/local/etc/apache22/httpd.conf
Tambahkan baris-baris berikut kedalamnya agar PHP5 Anda didukung oleh Apache. Anda berhak meletakkannya dimana saja. Di akhir baris juga boleh. Kemudian tekan ESC dan Enter dua kali.
AddType application/x-httpd-php php
AddType application/x-httpd-php-source phps
Langkah selanjutnya adalah menyiapkan file php.ini.
# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
Restart apache Anda untuk mengaktifkan perubahan yang telah dilakukan.
# /usr/local/sbin/apachectl restart
RootDirectory dari apache22 terletak pada /usr/local/www/apache22/data. Untuk memudahkan kita dalam memanage RootDirectory ini, mari kita buatkan link simbolic.
# cd /
# ln -s /usr/local/www/apache22/data/ /www
# ll
total 49
-rw-r–r– 2 root wheel 801 May 7 2006 .cshrc
-rw-r–r– 2 root wheel 251 May 7 2006 .profile
drwxrwxr-x 2 root operator 512 Jan 10 15:29 .snap
-r–r–r– 1 root wheel 6187 May 7 2006 COPYRIGHT
drwxr-xr-x 2 root wheel 1024 Jan 10 15:30 bin
drwxr-xr-x 6 root wheel 512 Jan 12 11:03 boot
drwxr-xr-x 2 root wheel 512 Jan 10 15:29 cdrom
lrwxr-xr-x 1 root wheel 10 Jan 10 15:38 compat -> usr/compat
dr-xr-xr-x 4 root wheel 512 Jan 1 1970 dev
drwxr-xr-x 2 root wheel 512 Jan 10 15:29 dist
drwxr-xr-x 18 root wheel 2048 Jan 11 13:50 etc
drwxr-xr-x 3 root wheel 1024 Jan 10 15:30 lib
drwxr-xr-x 2 root wheel 512 Jan 10 15:30 libexec
drwxr-xr-x 2 root wheel 512 May 7 2006 mnt
dr-xr-xr-x 2 root wheel 512 May 7 2006 proc
drwxr-xr-x 2 root wheel 2560 Jan 10 15:30 rescue
drwxr-xr-x 2 root wheel 512 Jan 11 00:38 root
drwxr-xr-x 2 root wheel 2560 Jan 10 15:30 sbin
lrwxrwxrwx 1 root wheel 11 Jan 10 15:29 sys -> usr/src/sys
drwxrwxrwt 7 root wheel 512 Jan 12 13:00 tmp
drwxr-xr-x 17 root wheel 512 Jan 12 00:19 usr
drwxr-xr-x 23 root wheel 512 Jan 12 10:25 var
lrwxr-xr-x 1 root wheel 29 Jan 12 13:01 www -> /usr/local/www/apache22/data/
Sehingga, sekarang saat kita mengakses /www atau usr/local/www/apache22/data sama saja.
Kemudian untuk menguji apakah php Anda telah berjalan dengan baik, kita buat satu buah file.
# ee /www/info.php
Adapun isinya adalah sebagai berikut:
<?php phpinfo(); ?>
Sekarang, reboot komputer Anda.
# reboot
Setelah komputer Anda direstart, buka web browser dari klien, dan seharusnya jika konfigurasi Anda sudah benar akan tampil seperti berikut:
-
MySQL 5
MySQL (My Structured Query Language) adalah salah satu Relational Database Management System (RDBMS), dari sekian banyak basis data lain seperti Oracle, MS SQL, PostgresSQL dan banyak lagi. Basis data MySQL digunakan pada server STIKI dengan alasan basis data MySQL sangat cepat, handal, dan mudah untuk digunakan. Selain itu, MySQL telah teruji oleh banyak server di seluruh dunia.
Langkah-langkah Instalasi dan Konfigurasi MySQL pada FreeBSD
Pada bagian ini akan dijelaskan secara singkat proses instalasi MySQL. MySQL pada FreeBSD terletak pada direktori /usr/ports/databases/mysql51-server. Ketikkan perintah berikut untuk menginstall MySQL Server.
# cd /usr/ports/databases/mysql51-server/
# make install clean
Tunggulah beberapa saat, agak lama memang. Setelah nanti installasi Anda selesai, akan muncul log seperti berikut:
Added group “mysql”.
Added user “mysql”.
install-info –quiet /usr/local/info/mysql.info /usr/local/info/dir
if [ "`/usr/bin/dirname mysql`" != "." ]; then echo “@unexec /bin/rmdir %D/info/`/usr/bin/dirname mysql` 2> /dev/null || true” >> /usr/ports/databases/mysql51-server/work/.PLIST.mktmp; fi
===> Installing rc.d startup script(s)
===> Compressing manual pages for mysql-server-5.1.6_2
===> Registering installation for mysql-server-5.1.6_2
===> SECURITY REPORT:
This port has installed the following files which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/mysqld
This port has installed the following startup scripts which may cause
these network services to be started at boot time.
/usr/local/etc/rc.d/mysql-server
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type ‘make deinstall’
to deinstall the port if this is a concern.
For more information, and contact details about the security
status of this software, see the following webpage:
http://www.mysql.com/
===> Cleaning for libtool-1.5.22_2
===> Cleaning for mysql-client-5.1.6_1
===> Cleaning for mysql-server-5.1.6_2
Setelah selesai, jalankan service mysql Anda dengan mengetikkan perintah:
# /usr/local/etc/rc.d/mysql-server forcestart
Starting mysql.
Untuk memastikan bahwa service mysql Anda telah berjalan, ketikkan perintah di bawah ini. Jika kemudian muncul service mysql dengan pid dan prosesnya, maka mysql telah berjalan dengan benar.
# ps waux | grep mysql
mysql 12941 0.0 0.7 1652 1008 p0 I 4:13PM 0:00.08 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysq
mysql 12961 0.0 19.2 46928 29824 p0 S 4:13PM 0:03.90 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf
root 12963 0.0 0.5 1440 764 p0 R+ 4:14PM 0:00.02 grep mysql
Kemudian, agar service mysql senantiasa dijalankan pada saat komputer restart, maka buka file /etc/rc.conf dan tambahkan konfigurasi mysql_enable=”YES” didalamnya.
# ee /etc/rc.conf
mysql_enable=”YES”
Jika telah selesai tekan ESC dan Enter dua kali, kemudian reboot komputer Anda untuk memastikan semuanya telah berjalan dengan baik dan benar.
# reboot
Memberi Password Kepada Root
User root disini berbeda dengan user root pada pembahasan kita mengenai sistem FreeBSD. User root yang ada disini murni account mahadewa yang dimiliki oleh MySQL. Secara default user root pada mysql tidak memiliki password sama sekali. Ada satu perintah yang dapat digunakan untuk menambahkan password pada user root yaitu:
# mysqladmin -u root password stikimalang
Sekarang, Anda telah memberikan keamanan pada user root Anda dengan password bernama “stikimalang”.
-
Melakukan Konfigurasi Apache
Untuk memudahkan kita dalam mengkonfigurasi apache ada baiknya kita membuat shortcut sebagai berikut:
# ln -s /usr/local/etc/apache22/ /etc/apache22
Menambahkan Virtual Hosts
Lakukan editing pada file /etc/apache22/httpd.conf.
# ee /etc/apache22/httpd.conf
Carilah baris yang mengandung kata-kata berikut ini:
# Virtual hosts
#Include etc/apache22/extra/httpd-vhosts.conf
Hilangkan tanda pagar (remark) menjadi:
# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
Selanjutnya, untuk menambahkan virtual hosts pada apache, dapat melakukan editing pada file /etc/apache22/extra/httpd-vhosts.conf.
# ee /etc/apache22/extra/httpd-vhosts.conf
Langkah pertama sebelum Anda menambahkan virtual host, mark dulu semua yang tidak dibutuhkan yaitu:
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog /var/log/dummy-host.example.com-error_log
# CustomLog /var/log/dummy-host.example.com-access_log common
#</VirtualHost>
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
# DocumentRoot /www/docs/dummy-host2.example.com
# ServerName dummy-host2.example.com
# ErrorLog /var/log/dummy-host2.example.com-error_log
# CustomLog /var/log/dummy-host2.example.com-access_log common
#</VirtualHost>
Kemudian, agar user dapat mengakses alamat http://www.stiki.ac.id, maka kita perlu menambahkan baris-baris berikut pada file di atas. Letakkan di baris paling akhir.
<VirtualHost *:80>
ServerAdmin webmaster@stiki.ac.id
DocumentRoot /usr/local/www/apache22/data
ServerName www.stiki.ac.id
ErrorLog /var/log/www.stiki.ac.id-error_log
CustomLog /var/log/www.stiki.ac.id-access_log common
</VirtualHost>
Contoh lain, misalkan kita ingin menambahkan subdomain http://sql.stiki.ac.id yang memiliki direktori asal di /web/phpmyadmin, maka kita tinggal menambahkan baris-baris berikut pada file di atas. Letakkan di baris paling akhir. Tapi ingat, Anda harus siapkan dulu direktori phpmyadmin yang berisi script dari phpmyadmin yang dapat di-download dari www.phpmyadmin.net.
<VirtualHost *:80>
ServerAdmin webmaster@stiki.ac.id
DocumentRoot /usr/local/www/apache22/phpmyadmin
ServerName sql.stiki.ac.id
ErrorLog /var/log/sql.stiki.ac.id-error_log
CustomLog /var/log/sql.stiki.ac.id-access_log common
</VirtualHost>
-
Mengamankan Web Traffic dengan SSL/TLS
Secure Socket Layer (SSL) adalah mekanisme pembungkusan data yang berlalu lalang antara klien dan server dengan suatu metode enkripsi data. Mekanisme ini adalah suatu protokol khusus yang menyediakan komunikasi yang aman dengan enkripsi dan tanda tangan digital. Mekanisme SSL ini menggunakan
Pada metode ini, tiap-tiap pihak yang terlibat dalam komunikasi memiliki dua buah kunci. Satu disebut kunci pribadi (private key) dan satu lagi disebut kunci publik. Kunci pribadi disimpan sendiri dan harus dijaga kerahasiaannya. Hanya pemilik kunci tersebut yang boleh membaca isi kuncinya. Berbeda dengan kunci publik. Kunci publik harus diserahkan kepada pihak lain yang diajak berkomunikasi. Semua komunikasi dari pihak A ke pihak B dilakukan dengan cara:
A dan B saling mengirimkan kunci publiknya masing-masing
A melakukan enkripsi pada pesan yang hendak dikirimkan dengan kunci pribadi dan kunci publik milik B. Kunci publik dan data kemudian dikirimkan ke pihak B. Setelah diterima, pihak B akan membuka isi pesan tersebut dengan kunci pribadi milik B dan kunci publik milik A yang juga sudah diterima.
Walaupun dalam perjalanannya, isi pesan tersebut dapat disadap orang, maka (secara teori) sang penyadap tidak akan dapat membaca isi pesan yang asli. Untuk dapat membuka isi pesan, sang penyadap harus memiliki kunci pribadi B dan kunci publik A.
Pada Apache, komunikasi antara browser dan server web dapat menggunakan protokol SSL dengan mengaktifkan modul mod_ssl. Untuk mengaktifkannya, server web harus terlebih dahulu memasang file sertifikat yang berisi kunci publik dan kunci pribadi server.
File sertifikat ini, biasanya dapat diperoleh dengan cara membelinya dari suatu badan yang disebut dengan Certificate Authority (CA). Beberapa CA yang cukup terkenal adalah Verisign (http://www.verisign.com) dan Thawte (http://www.thawte.com).
Sebelum mulai membuat sertifikat, perlu dipersiapkan direktori khusus untuk sertifikat, yaitu dengan cara:
# cd
# mkdir certs
# cd certs
Membuat CA Sendiri
File sertifikat dapat dibuat sendiri tanpa harus membelinya dari CA (Certificate Authority). Namun, tentunya sertifikat yang dibuat sendiri ini tidak akan dikenali oleh browser. Untuk membuatnya sendiri melalui FreeBSD, caranya cukup mudah. Ikuti langkah-langkah berikut ini:
# cd ~/certs
# mkdir -p demoCA
# touch demoCA/index.txt
# echo 01 > demoCA/serial
# openssl genrsa -des3 -out ca.key 1024
Generating RSA private key, 1024 bit long modulus
…………………………………………………….++++++
…………………………….++++++
e is 65537 (0×10001)
Enter pass phrase for ca.key:
Verifying – Enter pass phrase for ca.key:
Masukkan password minimal sebanyak empat karakter dan ingat password tersebut. Hasil perintah di atas adalah sebuah file berisi kunci pribadi tipe RSA dengan algoritma TripleDES yang bernama ca.key.
Langkah berikutnya adalah membuat sertifikat CA dari kunci pribadi RSA tadi:
# openssl req -new -x509 -key ca.key -out ca.crt
Generating RSA private key, 1024 bit long modulus
e is 65537 (0×10001)
Enter pass phrase for ca.key:
Verifying – Enter pass phrase for ca.key:
hotspot# openssl req -new -x509 -key ca.key -out ca.crt
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Timur
Locality Name (eg, city) []:Malang
Organization Name (eg, company) [Internet Widgits Pty Ltd]:STIKI
Organizational Unit Name (eg, section) []:IT Solution
Common Name (eg, YOUR name) []:hotspot.stiki.ac.id
Email Address []:admin@stiki.ac.id
Saat menjalankan perintah diatas, sistem akan meminta untuk mengisi password yang tadi dipakai untuk membuat kunci pribadi, kemudian isikan data tentang organisasi/institusi. Hasilnya adalah sebuah file sertifikat bernama ca.crt. Simpan kedua file ini baik-baik karena akan digunakan nanti.
Membuat Sertifikat
Untuk membuat sertifikat SSL pertama kali yang harus dilakukan adalah membuat kunci pribadi server web.
# cd ~/certs
# openssl genrsa -des3 -out hotspot.stiki.ac.id.key 1024
Generating RSA private key, 1024 bit long modulus
………….++++++
……………………………….++++++
e is 65537 (0×10001)
Enter pass phrase for hotspot.stiki.ac.id.key:
Verifying – Enter pass phrase for hotspot.stiki.ac.id.key:
Masukkan password minimal sebanyak empat karakter dan ingat password tersebut. Langkah berikutnya adalah menghilangkan password dari kunci tersebut. Ini bertujuan untuk menyederhanakan proses menjalankan server web. Sebab bila kunci pribadi memiliki password, maka password tersebut akan selalu diminta pada setiap kali server web dijalankan, dan ini akan merepotkan. Keamanan kunci cukup dilakukan nanti dengan mengeset hak akses dengan benar. Namun bila
tetap menginginkan file kunci pribadi yang memiliki password, cukup abaikan saja perintah berikut ini:
# cp hotspot.stiki.ac.id.key hotspot.stiki.ac.id.old
# openssl rsa -in hotspot.stiki.ac.id.old -out hotspot.stiki.ac.id.key
Enter pass phrase for hotspot.stiki.ac.id.old:
writing RSA key
Hasil perintah di atas adalah sebuah file berisi kunci pribadi tipe RSA dengan algoritma TripleDES yang bernama hotspot.stiki.ac.id.key. Langkah berikutnya adalah membuat permintaan sertifikat yang disebut dengan Certificate Signing Request (CSR) dengan cara:
# openssl req -new -key hotspot.stiki.ac.id.key -out hotspot.stiki.ac.id.csr
Enter pass phrase for hotspot.stiki.ac.id.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Timur
Locality Name (eg, city) []:Malang
Organization Name (eg, company) [Internet Widgits Pty Ltd]:STIKI
Organizational Unit Name (eg, section) []:IT Solution
Common Name (eg, YOUR name) []:hotspot.stiki.ac.id
Email Address []:admin@stiki.ac.id
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:stikimalang
An optional company name []:STIKI
Hasilnya adalah file CSR bernama hotspot.stiki.ac.id.csr.
Kemudian kirimkan file hotspot.stiki.ac.id.csr ke CA tempat membeli sertifikat. Silakan ikuti petunjuk yang diberikan oleh CA selanjutnya. Namun bila ingin menggunakan CA sendiri sebagai mana telah diterangkan sebelumnya, gunakan perintah berikut:
# openssl ca -in hotspot.stiki.ac.id.csr -out hotspot.stiki.ac.id.crt -keyfile ca.key -cert ca.crt
-outdir ./ -policy policy_anything
Using configuration from /etc/ssl/openssl.cnf
Enter pass phrase for ca.key:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0×1)
Validity
Not Before: Aug 7 10:27:11 2006 GMT
Not After : Aug 7 10:27:11 2007 GMT
Subject:
countryName = ID
stateOrProvinceName = Jawa Timur
localityName = Malang
organizationName = STIKI
organizationalUnitName = IT Solution
commonName = 1smail
emailAddress = admin@stiki.ac.id
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
20:8B:E9:80:10:DB:F4:DA:D0:A7:0D:DC:86:31:C9:A1:CE:6C:97:34
X509v3 Authority Key Identifier:
keyid:B8:BE:72:21:4C:B1:E6:EC:45:FC:80:E2:AC:EE:14:91:39:48:DD:65
DirName:/C=ID/ST=Jawa Timur/L=Malang/O=STIKI/OU=IT Solution/CN=1smail/emailAddress=admin@stiki.ac.id
serial:C6:ED:AD:E8:4C:D3:42:DD
Certificate is to be certified until Aug 7 10:27:11 2007 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Hasil proses di atas adalah file hotspot.stiki.ac.id.crt. Bila mungkin menggunakan CA lain, hasilnya juga beri nama hotspot.stiki.ac.id.crt. sekarang langkah berikutnya adalah:
# cd ~/certs
# mkdir /usr/local/etc/apache22/certs
# cp hotspot.stiki.ac.id.crt hotspot.stiki.ac.id.key /usr/local/etc/apache22/certs/
# chown -R www:www /usr/local/etc/apache22/certs/
# chmod 600 /usr/local/etc/apache22/certs/*
Dari perintah di atas dilakukan pemberian hak akses yang sangat ketat. Hanya user www dan root yang bisa membaca file sertifikat serta kunci pribadi.
Instalasi Sertifikat
Sekarang waktunya untuk menginstal file sertifikat dan file kunci pribadi server web pada konfigurasi Apache. Edit file /usr/local/etc/apache22/extra/httpd-ssl.conf.
# cd /usr/local/etc/apache22
# ee extra/httpd-ssl.conf
Kemudian isikan lokasi sertifikat dan file kunci pribadi seperti ini:
SSLCertificateFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.crt
SSLCertificateKeyFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.key
Jangan lupa untuk menghapus atau mengubah baris yang mengandung konfigurasi di atas. Untuk disesuaikan dengan lokasi file sertifikat berada.
Berikut adalah isi file httpd-ssl.conf selengkapnya:
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/var/run/ssl_mutex
<VirtualHost _default_:443>
DocumentRoot “/usr/local/www/apache22/data”
ServerName hotspot.stiki.ac.id:443
ServerAdmin admin@stiki.ac.id
ErrorLog /var/log/httpd-error.log
TransferLog /var/log/httpd-access.log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.crt
SSLCertificateKeyFile /usr/local/etc/apache22/certs/hotspot.stiki.ac.id.key
<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch>
<Directory “/usr/local/www/apache22/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /var/log/httpd-ssl_request.log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
</VirtualHost>
Secara default, Apache tidak mengaktifkan konfigurasi SSL diatas bila tidak mengedit file httpd.conf terlebih dahulu. Bukalah file httpd.conf dengan mengetikkan perintah berikut:
# ee /usr/local/etc/apache22/httpd.conf
Carilah baris konfigurasi berikut ini:
#Include etc/apache22/extra/httpd-ssl.conf
kemudian hilangkah tanda pagar di depannya, sehingga menjadi:
Include etc/apache22/extra/httpd-ssl.conf
Untuk mempermudah pencarian, editor ee menyediakan fasilitas pencarian yang dapat diakses dengan menekan Ctrl+Y. Selanjutnya akan muncul prompt di bagian bawah dengan tulisan “search for: “. Silakan ketikkan httpd-ssl.conf, maka kursor akan langsung mengarah ke bagian yang mengandung kata tersebut. Sekarang, Apache akan menjalankan konfigurasi pada file httpd-ssl.conf setiap kali dieksekusi.
Tes Instalasi
Sekarang akan dilakukan tes pada konfigurasi Apache yang telah dilakukan. Caranya dengan menggunakan perintah:
# /usr/local/sbin/apachectl restart
Pada file log di /var/log/httpd-error.log harus ada keluaran seperti ini:
# tail /var/log/httpd-error.log
[Tue Aug 08 19:16:41 2006] [notice] Apache/2.2.0 (FreeBSD) mod_ssl/2.2.0 OpenSSL/0.9.7e-p1 DAV/2 configured — resuming normal operations
Sekarang akan dicoba untuk mengakses alamat IP server dengan menggunakan browser, seharusnya keluar halaman pada browser seperti Gambar 4.60.
Bila melihat halaman yang lain atau pesan error lain, silakan periksa log error dan lihat kesalahannya. Pada tahap ini jangan lupa untuk mengaktifkan DNS, dan bila mencoba mengakses dari komputer lain, maka server DNS pada komputer tersebut harus diarahkan ke server ini agar dapat berjalan dengan baik.