my documentation

beberapa catatan kecil

Web Server HTTPS : Secure HTTP Protocol pada CentOS

dengan 9 komentar

Pada beberapa halaman web kita sering menemukan alamat yang menggunakan “https://” seperti pada login aplikasi bank, paypal, facebook, email, dll. apakah sebenarnya https itu? dan bagaimana kita menyediakan webserver dengan fitur https?

HTTPS adalah kepanjangan dari Hypertext Transfer Protocol Secure yang merupakan sebuah protokol kombinasi antara HTTP (Hypertext Transfer Protocol) dan Cryptographic Protocol. Pada protokol ini selain menggunakan komunikasi plain text, juga menyandikan data sesi dengan menggunakan protokol SSL (Secure Socket Layer) atau Protokol TLS (Transport Layer Security). Pada umumnya Port yang digunakan adalah port 443 dan url yang digunakan adalah https://

menyediakan webserver https

Untuk menyediakan webserver berbasis https, saya mencoba melakukan instalasi pada mesin webserver dengan sistem operasi CentOS. langkah-langkahnya adalah :

  1. Mendapatkan paket aplikasi yang dibutuhkan
  2. Paket aplikasi yang dibutuhkan adalah mod_ssl dan OpenSSL. mod_ssl adalah interface yang digunakan Apache untuk menggunakan OpenSSL. kita bisa menginstallnya menggunakan yum atau rpm.
    Untuk instalasi dengan yum caranya :

    yum install mod_ssl openssl
    

  3. Men-generateself-signed certificate
  4. Untuk menyiapkan sebuah web server agar menerima koneksi HTTPS, administrator harus membuat sertifikat kunci publik untuk server web. Sertifikat ini harus ditandai oleh otoritas sertifikat yang terpercaya agar semua browser web bisa menerimanya koneksi HTTPS dari web server kita. Sertifikasi ini untuk menyatakan bahwa pemegang sertifikat tersebut memang merupakan sertifikat resmi. Web browser pada umumnya didistribusikan dengan sertifikat yang resmii sehingga mereka dapat memverifikasi koneksi HTTPS web server kita. Sertifikat sekuritas ini ada yang gratis (free) ada juga yang berlangganan antara US$13 – US$1.500 per tahun.

    Tapi ada cara lain, yaitu membuat sertifikat kita sendiri, tetapi resikonya setiap web browser akan memberikan peringatan bahwa sertifikat milik web server kita tidak resmi. Untuk mendapatkan sertifikat sekuritas langkahnya adalah :

    # Generate private key
    openssl genrsa -out ca.key 1024 
    
    # Generate CSR
    openssl req -new -key ca.key -out ca.csr
    
    # Generate Self Signed Key
    openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
    
    # Move the files to the correct locations
    mv ca.crt /etc/pki/tls/certs
    mv ca.key /etc/pki/tls/private/ca.key
    mv ca.csr /etc/pki/tls/private/ca.csr
    

    Kemudian kita harus mengupdate konfigurasi Apache SSL

    vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
    

    Mengubah path untuk mencocokkan di mana file kunci disimpan.

    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    

    Kemudian mengatur path untuk Sertifikat Key File

    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    

    restart Apache

    service httpd restart
    

  5. Mengeset Virtual Host
  6. Nah kemudian kita membuat virtual host pada webserver kita agar kita mempunyai 2 host yang berbeda dalam 1 webserver.
    Misalnya kita akan mengarahkan host http port 80 ke direktori /var/www/html/ dan untuk host https port 443 ke direktori /var/www/secure/. Maka kita lakukan modifikasi pada file konfigurasi apache /etc/httpd/conf/httpd.conf

    <VirtualHost *:80>
            <Directory /var/www/html>
            AllowOverride All
            </Directory>
            DocumentRoot /var/www/html
            ServerName 172.18.3.184
    </VirtualHost>
    NameVirtualHost *:443
    <VirtualHost *:443>
            SSLEngine on
            SSLCertificateFile /etc/pki/tls/certs/ca.crt
            SSLCertificateKeyFile /etc/pki/tls/private/ca.key
            <Directory /var/www/secure>
            AllowOverride All
            </Directory>
            DocumentRoot /var/www/secure
            ServerName 172.18.3.184
    </VirtualHost>
    

    kemudian restart Apache

    service httpd restart
    

  7. Configure firewall
  8. Langkah terakhir kita set konfigurasi firewall agar menerima request yang melalui port 443

    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    /sbin/service iptables save
    iptables -L -v
    

sekian, selamat mencoba
sumber

Ditulis oleh nugrahaputra

September 4, 2009 pada 5:13 am

Ditulis dalam Software

Dikaitkatakan dengan ,

9 Tanggapan

Berlangganan komentar dengan RSS.

  1. mantap kakak…
    Siakade ndang dikasih tambahan “S” nya

    Danu

    September 4, 2009 pada 5:47 am

    • ondeway kk… tunggu aja kekeke..

      nugrahaputra

      September 4, 2009 pada 5:50 am

  2. Salam kenal aja deh

    Sewa Projector Murah

    September 4, 2009 pada 8:47 am

    • salam balik :)

      nugrahaputra

      September 5, 2009 pada 3:11 am

  3. hai, senang bertemu Anda melalui blog ini saya Agus Suhanto, tulisan yg menarik :) … lam kenal yaa

    Agus Suhanto

    September 7, 2009 pada 2:09 am

    • yup, terimakasih… semoga tulisan saya bermanfaat :)

      salam kenal…

      nugrahaputra

      September 7, 2009 pada 2:11 am

  4. Kalo bikin Alias di https gimana mas? Aku nyari tutorialnya gak nemu. Adanya cuma redirecting

    Sigit

    Februari 9, 2010 pada 5:15 pm

  5. thank you gan, ini jadi referensiku kl buat https :D
    numpang blogroll gan :)

    DataQ

    Mei 12, 2010 pada 6:54 am


Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.