Koleksi Artikel dari Biasawae Community

Copyleft © 2005 biasawae.com













Lisensi Dokumen :
Copyleft © 2005 biasawae.com

Seluruh dokumen adalah koleksi artikel dari biasawae community yang dikumpulkan dari berbagai
sumber. Dokumen ini dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan
komersial, dengan syarat tidak mengubah atribut penulis atau nara sumber dan tidak
disalahgunakan.

Diperbolehkan melakukan penulisan ulang tanpa mendapatkan ijin terlebih dahulu dari biasawae
community, dengan syarat penulisan ulang tersebut tidak keluar dari inti pokok dokumen baik
menambahkan atau mengurangi isi materi. dan harus menuliskan pustaka dari penulis atau nara
sumber.

Jika anda melakukan penulisan ulang dan penulis atau nara sumber tidak diketahui, maka acuan
pustaka merujuk ke biasawae community.

Meskipun begitu, biasawae community tidak bertanggung jawab atas isi dari dokumen dan dampak
yang dapat ditimbulkan baik sebelum terjadi penulisan ulang ataupun setelahnya.

biasawae community mengumpulkan artikel - artikel dari berbagai bidang ini mempunyai tujuan
agar khasanah ilmu pengetahuan dapat cepat menyebar ke berbagai penjuru dunia melalui media
komputer.



















HowTO SSL
Sumber : black@mail.linux.local.org, jhe@mitra.net.id, zainal@lug.stikom.edu

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

Definisi :
SSL (Secure Socket Layer) merupakan mekanisme "pembungkusan" Data yang berlalu lalang
antara Server dan Client dengan teknik yaitu "Enkripsi Data". SSL ini bekerja untuk melindungi
Data yg ada pada Aplikasi Web Server kita. Contoh yg sering kita temui adalah layanan E-
Commerce pada Web Server yang mengharuskan kita melakukan transaksi melalui browser
(memasukan ID kartu kredit kita atau sebagainya).

Konsep-nya hampir sama dengan penggunaan GPG (GNU Privacy Guard, *NIX OS) atau
PGP (Pretty Good Privacy, Windows Family) pada kemampuannya untuk mengamakan email
dari serang "Man In The Middle Attack" dengan teknik mengenkripsi email yg di kirim.
Dimana antara A (Server) dan B (Client) sama-sama mengirimkan kunci public-nya, A
melakukan enkripsi pada pesan yang hendak dikirimkan dengan kunci pribadi (Private Key) dan
kunci public (Public Key) milik B. Kunci Public dan data akan dikirimkan ke B. Setelah di terima,
maka B akan membuka isi pesan tersebut dengan kunci pribadi milik B dan kunci public milik A.

Asumsi kita saat ini, kita sudah selesai membuat sebuah DNS Server dan tentu saja sudah ada
Web Server yang running di dalamnya (Apache recomended) . Disini anggap saja Server DNS
kita adalah "linux.local.org" dengan domain "local.org", dan di sana sudah ada Server Web
yang kebetulan di sini, saya menggunakan Virtual Host untuk mencobanya yaitu
'jhe.linux.local.org' dan nama aliasnya (canonicalname) 'www.linux.local.org'. (lihat '../zone-
black/linux.zone' dan '../zone-black/192.168.1.zone')

Pada Apache komunikasi antara browser dan Server Web dapat menggunakan Protokol SSL
ini, dengan mengaktifkan module "mod_ssl", untuk mengaktifkannya Server Web kita harus
terlebih dahulu memasang "file sertifikat" (Certificate), yang berisikan kunci public dan kunci
pribadi server (baca: Private dan Public Key).

File sertifikat ini sendiri biasanya dapat di peroleh dengan cara membelinya pada suatu Badan
yang di sebut dengan CERTIFICATE AUTHORITY (CA), ada 2 Badan CA yg cukup terkenal
yaitu
"Verisign" (http://www.verisign.com) dan "Thawte" (http://www.thawte.com).
Sebelum kita membeli sertifikat dan CA, kita akan mencoba membuat sertifikat sendiri
dan sertifikat untuk Server Web kita serta mensahkan sendiri ;-)





Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

Nah berikut langkah-langkahnya.


[1]. Membuat Sertifikat sendiri (anggap sebagai Client dari Server Web)
-----------------------------------------------------------------------

Kebetulan saja user yang akan di buat sertifikatnya bernama 'black'.
Persiapkan 'directory' khusus untuk pembuatan sertifikat.
(asumsi kita berada pada home directory kita, o ya sampe lupa, inget! *linux basic*)

black@linux:~> mkdir certs ;buat 'certs'
black@linux:~/certs> cd certs ;masuk ke 'certs'
black@linux:~/certs> mkdir demoCA ; touch demoCA/index.txt ;buat 'demoCA' dan file
'index.txt' di dalamnya
black@linux:~/certs> echo 01 > demoCA/serialku ;memasukan serialno '01'
kedalam file 'serial'

Note :
Directory 'demoCA' dan 2 file (index.txt,serial) tidak boleh di rubah alias
jangan di ganti namanya (recomended to make your own CA from CA Company)

Sampai pada tahap ini kita sudah selesai melakukan persiapan untuk membuat
sertifikat sendiri. Kemudian dengan mengeksekusi perintah `openssl` (dengan opsi2x-nya)

black@linux:~/certs> openssl genrsa -des3 -out ca.key 1024
Generating RSA private key, 1024 bit long modulus
..........++++++
......................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:
black@linux:~/certs>

Misal password : zainal1
Hasil dari perintah diatas, akan menghasilkan sebuat file 'ca.key' (Kunci Pribadi)
dengan Algoritma Enkripsi "TripleDES" dengan kode binary 1024 BIT.


Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

Tahap berikutnya membuat sertifikat CA dari Kunci Pribadi (Private Key) RSA tadi.
(note : password yg akan di insertkan adalah 'zainal1'

black@linux:~/certs> 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) []:Surabaya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Traumatica Syndrome
Organizational Unit Name (eg, section) []:Traumatica
Common Name (eg, YOUR name) []:Traumatica Black Syndrome
Email Address []:black@mail.linux.local.org
black@linux:~/certs>

Hasilnya adalah sebuah file sertifikat bernama ca.crt
Catatan :
Simpan kedua file ini ('ca.key' dan 'ca.crt') baik-baik
karena akan benar-benar di gunakan setelah ini.
Untuk password disarankan, gunakan password sesuai ketentuan *NIX
dan .. ehmm..ehmm sekali lagi password barusan harap diinget!

[2]. Membuat Sertifikat untuk Web Server (http://www.linux.local.org)
---------------------------------------------------------------------

Untuk membuat sertifikat SSL, yang pertama kali dibuat adalah membuat kunci pribadi
pada Web Server kita. (asumsi kita masih berada di directory "~/certs")

black@linux:~/certs> openssl genrsa -des3 -out linux.local.org.key 1024
Generating RSA private key, 1024 bit long modulus
...++++++

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

................++++++
e is 65537 (0x10001)
Enter pass phrase for linux.local.org.key:
Verifying - Enter pass phrase for linux.local.org.key:
black@linux:~/certs>

Misal passwordnya : zainal2
Hasil dari eksekusi perintah diatas 'linux.local.org.key' yang adalah Kunci Pribadi Web Server
Langkah berikutnya adalah menghilangkan 'password' dari kunci tersebut, ini bertujuan untuk
menyederhanakan proses pada waktu menjalankan Server Web kita. Sebab bila kunci pribadi
masih memiliki password maka password tersebut akan selalu di minta pada saat kita
menjalankan/mengakses Server Web (..huh repot banget! :P). Oleh karena itu keamanan kunci
cukup kita lakukan nanti dengan mengeset hak aksess (permission) dengan benar.
Tapi bila ingin jadi 'seksi repot' buat mengisi password cukup dengan melewatkan
tahap berikut ini (dijamin bakal repot beneran....).
(note: password yg di isikan nanti adalah 'zainal2'

black@linux:~/certs> cp linux.local.org.key linux.local.org.key.ORIG
black@linux:~/certs> ls
ca.crt ca.key createCA linux.local.org.key linux.local.org.key.ORIG
black@linux:~/certs> openssl rsa -in linux.local.org.key.ORIG -out linux.local.org
Enter pass phrase for linux.local.org.key.ORIG:
writing RSA key
black@linux:~/certs>

Hasil dari perintah diatas adalah sebuah file berisi kunci pribadi dengan tipa RSA,
menggunakan Algoritma "TripleDES" yang bernama 'linux.local.org.key'.
Langkah berikutnya adalah membuat permintaan sertifikat yang di sebut dengan nama
"Certificate Signing Request (CRS)". Berikut cara pembuatannya.

black@linux:~/certs> ls
ca.crt ca.key createCA linux.local.org linux.local.org.key linux.local.org.key.ORIG
black@linux:~/certs> openssl req -new -key linux.local.org.key -out linux.local.org.csr
Enter pass phrase for linux.local.org.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.

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

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) []:Surabaya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Traumatica Syndrome
Organizational Unit Name (eg, section) []:Traumatica
Common Name (eg, YOUR name) []:www.linux.local.org
Email Address []:black@mail.linux.local.org

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
black@linux:~/certs>

Hasil dari eksekusi perintah diatas adalah file CRS (Certificate Signing Request)
bernama 'linux.local.org.csr'. Kemudian kirimkan file 'linux.local.org.csr' ke CA
tempat dimana kita membeli CA, silahkan ikuti petunjuk yg di berikan oleh CA selanjutnya.
Namun jika kita akan menggunakan CA sendiri (alias mensahkan sendiri) seperti
yang di jelaskan diatas, tinggal mengeksekusi perintah di bawah ini.

black@linux:~/certs> openssl ca -in linux.local.org.csr -out linux.local.org.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 (0x1)
Validity
Not Before: Jun 27 19:04:42 2004 GMT
Not After : Jun 27 19:04:42 2005 GMT
Subject:

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com

countryName = ID
stateOrProvinceName = Jawa Timur
localityName = Surabaya
organizationName = Traumatica Syndrome
organizationalUnitName = Traumatica
commonName = www.linux.local.org
emailAddress = black@mail.linux.local.org
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
3C:0B:A4:A0:03:D1:E8:AC:BE:62:0B:33:0F:64:DD:F9:5F:42:13:B9
X509v3 Authority Key Identifier:
keyid:29:62:31:5E:F1:11:D6:6F:9E:00:2B:75:D0:B0:82:A1:CF:08:45:56
DirName:/C=ID/ST=Jawa Timur/L=Surabaya/O=Traumatica
Syndrome/OU=Traumatica/CN=Traumatica Black Syndrome
/emailAddress=black@mail.linux.local.org
serial:00

Certificate is to be certified until Jun 27 19:04:42 2005 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
black@linux:~/certs>

Hasil dari eksekusi perintah diatas akan menghasilkan file 'linux.local.org.crt'.
Dan bila menggunakan CA lain, hasilnya juga di berinama 'linux.local.org.crt'.
Nah sekarang kita sudah hampir sampai pada tahap yang paling akhir yakni meletakan
Directory 'certs' kedalah directory utama dari Apache (sesuaikan dengan letak
directory Apache anda) kebetulan penulis menggunakan Distro SusE 9.0.
Sebelumnya eksekusi 'su' untuk menjadi 'root' atau biar lebih aman dan mencoba profesional
gunakan 'sudo' (man sudo(1)) untuk perintah berikut.

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com


linux:/home/black/certs # cp linux.local.org.crt /etc/apache2/ssl.crt/
linux:/home/black/certs # cp linux.local.org.key /etc/apache2/ssl.key/
linux:/home/black/certs # chown -R wwwrun.www /etc/apache2/ssl.crt/
linux:/home/black/certs # chown -R wwwrun.www /etc/apache2/ssl.key/
linux:/home/black/certs # chmod 600 /etc/apache2/ssl.crt/*
linux:/home/black/certs # chmod 600 /etc/apache2/ssl.key/*

2 baris perintah diatas, yang pertama kita mengkopikan file 'linux.local.org.crt' dan
'linux.local.org.key'
kedalam masing-masing directory, ketiga dan empat mengubah owner (kepemilikan) kepada
user apache
dalah hal ini 'wwwrun', serta pemberian hak akses yang sangat ketat dimana hanya user
'wwwrun'
dan 'root' (dan user yg berada 1 group dengan keduanya) yang bisa membaca file sertifikat
serta kunci pribadi.


[3.] Mengaktifkan Sertifikat kedalam ssl.conf (ssl.conf(5), vhost-ssl.conf(1))
------------------------------------------------------------------------------

linux:/home/black/certs # cd /etc/apache2/vhost/
linux:/etc/apache2/vhost/ # cp vhost-ssl.template vhost-ssl.conf
linux:/etc/apache2/vhost/ # vim vhost-ssl.conf

Isikan path dari file Sertifikat dah kunci pribadi kedalam-nya, seperti di bawah ini.
--SSLCertificateFile /etc/apache2/ssl.crt/linux.local.org.crt
--SSLCertificateKeyFile /etc/apache2/ssl.key/linux.local.org.key

#########---Check Out My "vhost-ssl.conf", Where I was put in there.

Dan yang terakhir reload Service 'apache'-nya dan perhatikan 'error_log'-nya,
Recomended! sehabis merubah selalu 'configtest' di jalankan (Syntax OK?)
Dan 'reload' Apache Service-nya

linux:/etc/apache2/vhost/ # /etc/init.d/apache2 configtest
linux:/etc/apache2/vhost/ # /etc/init.d/apache2 reload

Koleksi Artikel dari Biasawae Community
Copyleft © 2005 biasawae.com


And then, goto -> https://www.linux.local.org

Referensi :
-----------
[X]. Panduan Mudah Membuat dan Mengelola Web Hosting, Penerbit Dian Rakyat,
InfoLinux
Oleh Mohammad Dhani Anwari Mohammad-Taib (Mdamt), Rusmanto Maryanto (Rus)
[X] /usr/share/doc/packages/apache2/* ;On My Linux Machine with SusE Linux 9.0
[X]. http://www.apache.org,http://www.modssl.org
[X]. Thanks to Oblek <oblek@lug.stikom.edu> for "Inspire Me" ;-)



Sign up to vote on this title
UsefulNot useful