Anda di halaman 1dari 6

MEMBUAT SSL

Secure Socket Layer(SSL) adalah protokol keamanan yang mengamankan semua bentuk transaksi
yang ada di website Anda. Mulai dari sekedar akses website hingga transaksi yang sensitif seperti
pendaftaran, online shopping, email, hingga transaksi kartu kredit.
SSL merupakan protokol kriptografi yang menggunakan algoritma yang berbeda untuk
mengimplementasikan keamanan menggunakan otentikasi dengan sertifikat, algoritma pertukaran
kunci sesi, enkripsi dan memeriksa integritas. Ini adalah protokol umum, sering digunakan untuk
memastikan bahwa komunikasi antara WWW-server dan WWW-client aman dan dienkripsi.
SSL menawarkan tiga tingkat keamanan, yaitu:
1. Authentication
2. Confidentiality
3. Integrity

: Memastikan bahwa message yang diterima berasal dari seseorang yang


terdaftar
: Melindungi pesan dari suatu usaha pembacaan oleh penerima yang tidak
berhak disepanjang perjalanannya.
: Memastikan bahwa pesan asli, tidak mengalami perubahan dalam
perjalanannya.

Cara Kerja SSL


Secure Socket Layer menggunakan sistem kriptografi yang mengenkripsi data dengan dua tombol.
Ketika sebuah Sertifikat SSL digital diinstal pada situs web, pengguna dapat melihat ikon gembok di
area bawah navigator. Ketika sebuah Sertifikat Extended Validation diinstal pada situs web, pengguna
dengan versi terbaru dari Firefox, Internet Explorer atau Opera akan melihat address bar hijau di area
URL navigator.

Manfaat dari SSL


Alasan utama mengapa menggunakan SSL adalah untuk menjaga informasi sensitif selama dalam
proses pengiriman melalui Internet dengan cara dienkripsi, sehingga hanya penerima pesan yang
dapat memahami dari hasil enkripsi tersebut. Hal ini sangat penting, karena informasi yang kita
kirimkan di Internet membutuhkan proses perjalanan dari komputer ke komputer sampai mencapai
server tujuan. Komputer lain yang ada diantara Anda dan server dapat melihat nomor Kartu Kredit
Anda, username dan passwords, dan informasi sensitive lainnya bila hal ini tidak dienkripsi dengan
Sertifikat SSL. Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh siapapun
kecuali ke server yang memang dituju saat mengirim informasi tersebut. Hal ini melindungi informasi
tersebut dari hackers dan pencuri identitas.

KONFIGURASI SSL
Secara default ssl sudah include di dalam installasi Slackware, untuk memastikan bahwa ssl telah telah
terinstall dalam system slackware anda, jalankan perintah :
# slackpkg search ssl
Looking for ssl in package list. Please wait... DONE
The list below shows all packages with name matching "ssl".
[ installed ] - openssl-1.0.1p-i486-1_slack14.1
[ installed ] - openssl-solibs-1.0.1p-i486-1_slack14.1
[ installed ] - qca-ossl-2.0.0_beta3-i486-2

Dari output perintah di atas dapat dilihat bahwa SSL sudah terinstall di dalam system, selanjutnya
adalah kita akan mengkonfigurasi SSL.
# cd /etc/ssl
# ls -l
total 40
drwxr-xr-x 2 root
drwxr-xr-x 2 root
-rw-r--r-- 1 root
drwxr-xr-x 2 root

root 20480 Jul 10 01:22


root 4096 Jul 10 01:22
root 10835 Feb 12 2013
root 4096 Jul 10 01:22

certs
misc
openssl.cnf
private

Kita perlu membuat file kunci RSA untuk private (pribadi) dan public (umum)
# vi openssl.cnf

Pada bagian [ CA_default ]


[ CA_default ]
dir
certs
crl_dir
database
#unique_subject

=
=
=
=
=

/etc/ssl
$dir/certs
$dir/crl
$dir/index.txt
no

#
#
#
#
#

Lakukan perubahan pada baris ini


Where the issued certs are kept
Where the issued crl are kept
database index file.
Set to 'no' to allow creation of

new_certs_dir
certificate
serial
crlnumber

=
=
=
=

$dir/newcerts
$dir/certs/ca.crt
$dir/serial
$dir/crlnumber

#
#
#
#
#

several ctificates with same subject.


default place for new certs.
Lakukan perubahan pada baris ini
The current serial number
the current crl number

crl
private_key
RANDFILE

= $dir/crl/ca.crl
= $dir/private/ca.key
= $dir/private/.rand

#
#
#
#

must be
Lakukan
Lakukan
private

commented out to leave a V1 CRL


perubahan pada baris ini
perubahan pada baris ini
random number file

Karena directory /etc/ssl/crl dan /etc/ssl/newcerts belum ada, kita harus membuat directory crl
# mkdir crl newcerts
# touch serial index.txt crlnumber crl/ca.crl
# echo 01 | tee serial | tee crlnumber

Membuat CA RSA Key


# openssl genrsa -des3 -out private/ca.key 4096
Generating RSA private key, 4096 bit long modulus
...................................................................................
...................................................................................
.........++
....++
e is 65537 (0x10001)
Enter pass phrase for private/ca.key:
# masukkan key private
Verifying - Enter pass phrase for private/ca.key:
# masukkan lagi key private

Membuat CA CRT
# openssl req -new -x509 -days 3650 -key private/ca.key -out certs/ca.crt
Enter pass phrase for private/ca.key:
# masukkan key private
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]:sumatera utara
Locality Name (eg, city) []:Padang Sidempuan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:belom ada
Organizational Unit Name (eg, section) []:belom ada
Common Name (e.g. server FQDN or YOUR name) []:server1.slackerman.my.id
Email Address []:manaf.hasibuan@gmail.com

Membuat Server CRT


Membuat key Server RSA
# openssl genrsa -des3 -out private/server.key 1024
Generating RSA private key, 1024 bit long modulus
..........................++++++
.....................................++++++
e is 65537 (0x10001)
Enter pass phrase for private/server.key:
# masukkan key private
Verifying - Enter pass phrase for private/server.key: # masukkan lagi key private

Membuat CSR Server


# openssl req -new -key private/server.key -out private/server.csr
Enter pass phrase for private/ca.key:
# masukkan key private
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]:sumatera utara
Locality Name (eg, city) []:Padang Sidempuan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:belom ada
Organizational Unit Name (eg, section) []:belom ada
Common Name (e.g. server FQDN or YOUR name) []:server1.slackerman.my.id
Email Address []:manaf.hasibuan@gmail.com

Please enter the following 'extra' attributes


to be sent with your certificate request
A challenge password []:123456
An optional company name []:

# openssl ca -in private/server.csr -out certs/server.crt


Using configuration from /etc/ssl/openssl.cnf
Enter pass phrase for /etc/ssl/private/ca.key:
I am unable to access the /etc/ssl/newcerts directory
/etc/ssl/newcerts: No such file or directory

# masukkan key

Kemudian Edit file /etc/httpd/httpd.conf


Hilangkan tanda komentar (#) pada baris ini :
# Secure (SSL/TLS) connections
Include /etc/httpd/extra/httpd-ssl.conf

<---- hilangkan tanda komentar

Aktifkan Dukungan SSL


Edit file /etc/httpd/extra/httpd-ssl.conf
# vi /etc/httpd/extra/httpd-ssl.conf

Lakukan perubahan pada baris-baris berikut :


...
SSLCertificateFile /etc/ssl/certs/server.crt
...
SSLCertificateKeyFile /etc/ssl/private/server.key
...
SSLCertificateChainFile /etc/ssl/certs/server.crt
...
SSLCACertificatePath /etc/ssl/certs
SSLCACertificateFile /etc/ssl/certs/ca.crt
...
SSLCARevocationPath /etc/ssl/crl
SSLCARevocationFile /etc/ssl/crl/ca.crl
...

# mv private/server.key private/server.key.org
# cd private
# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:
# masukkan key

Pastikan file server.key hanya dapat dibaca oleh root


# cd /etc/ssl
# chmod 0400 private/server.key

Security
# chmod 0400 private/*.key

INSTALLASI SSL
# yum -y openssl mod_ssl

GENERATE SERTIFIKAT
# Generate private key
# openssl genrsa -out www.domain.key 1024

# Generate CSR (Certificate Signing Request) untuk memberikan SSL authority


# openssl req -new -key www.domain.key -out www.domain.csr

Catatan : Anda akan mengisi keterangan tentang SSL authority.


# Generate Self Signed Key
# openssl x509 -req -days 365 -in www.domain.csr -signkey www.domain.key -out
www.domain.crt

Selanjutnya Copy file ssl yang anda buat tadi


# cp www.domain.crt /etc/pki/tls/certs/www.domain.crt
# cp www.domain.key /etc/pki/tls/private/www.domain.key
# cp www.domain.csr /etc/pki/tls/private/www.domain.csr

KONFIGURASI SSL
Masuk ke directory /etc/httpd/conf.d/ssl.conf
Edit :
SSLCertificateFile /etc/pki/tls/certs/www.domain.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.domain.key

Restart httpd anda


service httpd restart

KONFIGURASI DI VIRTUALHOST
Tambahkan :
NameVirtualHost ip_address:443

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/www.domain.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.domain.key

Restart apache :
service httpd restart

KONFIGURASI FIREWALL
Anda seharusnya sudah memiliki situs yang bekerja di https menggunakan sertifikat yang
ditandatangani sendiri. Jika anda tidak bisa mengubungkan, mungkin anda perlu membuka port pada
firewall anda.
# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# /sbin/service iptables save
# iptables -L -v

Langkah-langkah instalasi SSL di Web Server (Apache) di atas cukup mudah bukan? Cermati, pahami,
dan ikuti langkah-langkah tersebut. Namun, bila Anda memiliki aplikasi yang tidak berjalan seperti
yang seharusnya ataupun tidak memiliki waktu untuk melakukan konfigurasi, maka pilihlah web
hosting indonesia yang terpercaya. Selain menghemat waktu, Anda pun tidak perlu repot dalam
pengelolaan web. Biasanya disediakan tim ahli yang kompeten untuk jasa yang satu ini. Ada baiknya
juga jika Anda bisa memilih layanan dengan harga hosting yang rendah namun berkualitas untuk
mengurangi pengeluaran. Selamat mencoba dan semoga instalasi SSL di Web Server bisa dilakukan
tanpa ada masalah.