Konfigurasi Apache2 HTTPS server pada Debian 7

Web Server adalah server yang menyediakan layanan konten website pada Jaringan Internet, saat Web Server menerima permintaan maka Web Server akan mengirimkannya pada yang meminta lewat Jaringan Publik atau Internet, konten yang dikirim lewat jaringan tentunya dapat terlihat oleh Orang lain atau mata-mata, karena melewati jaringan publik, untuk itu kita perlu mengamankan konten yang dikirim agar tidak dapat dilihat oleh orang.

Apache2 memiliki fitur HTTPS atau HTTP SSL/TLS, adalah protokol HTTP yang dilengkapi dengan Enkripsi menggunakan protocol SSL/TLS, dengan ini ketika Web Server dan Client bertukar informasi, maka Informasinya akan di enkripsi atau isinya dikunci dengan cara diubah menjadi tulisan aneh yang tidak dapat dibaca oleh manusia, sehingga ketika dikirim lewat Jaringan Internet tidak dapat dibaca oleh orang lain.

Dengan menggunakan HTTPS maka Server harus memiliki Sertifikat CA (Certificate Authority) yang isinya adalah informasi dari Server, fungsinya agar server dapat melakukan Enkripsi data, didalam CA terdapat Public Key atau kunci untuk mengenkripsi data, kemudian data yang dienkripsi tersebut hanya bisa dibaca oleh Client yang memiliki Private Key.

Pada kali ini saya akan memposting cara membuat server HTTPS dengan Apache2, nama domain Server adalah www.server1.xyz, kemudian Sertifikat CA yang akan dibuat menggunakan tanda tangan sendiri (Self-signed),  sehingga mungkin browser Client tidak akan mempercayainya.

  • Pertama konfigurasi IP Address pada Server, file konfigurasi ada di /etc/network/interfaces
  • root@secure-webserver:~# nano /etc/network/interfaces 
    
    auto eth0
    iface eth0 inet static
            address 192.168.56.10
            netmask 255.255.255.0
            gateway 192.168.56.1
            dns-nameservers 192.168.56.10
    
    
  • Kita buat domain pada DNS Server lokal, yaitu www.server1.xyz. Anda bisa melihat cara konfigurasi DNS Server pada posting blog saya yang ini atau cari di google.
  • Install paket aplikasi yang dibutuhkan yaitu apache2 dan openssl untuk membuat setifikat CA dan Key.
  • apt-get update
    apt-get install apache2 openssl
    
  • Kita buat folder untuk meletakan CA, Public Key, dan Private Key untuk Web Server.
  • root@secure-webserver:~# mkdir /etc/ssl/apache
    root@secure-webserver:~# cd /etc/ssl/apache/
    
  • Kemudian kita buat CA Public key dan Private Key dengan perintah dibawah ini.
  • root@secure-webserver:/etc/ssl/apache# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out apache.crt -keyout apache.key
    
    Isi data data berikut ini dengan data Server anda.
    Generating a 2048 bit RSA private key
    ....................................................................................................+++
    ...............+++
    writing new private key to 'apache.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 Barat
    Locality Name (eg, city) []:Bekasi
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMK
    Organizational Unit Name (eg, section) []:TKJ
    Common Name (e.g. server FQDN or YOUR name) []:www.server1.xyz
    Email Address []:fathin@server1.xyz
    
  • Ubah Chmod agar kedua file sertifikat dan key hanya bisa diakses oleh root saja.
  • root@secure-webserver:/etc/ssl/apache# chmod 600 *
    
  • Aktifkan modul SSL apache2
  • a2enmod ssl
    
  • Kita buat file konfigurasi untuk HTTPS Server yang akan kita buat.
  • root@secure-webserver:/etc/apache2/sites-available# cp default-ssl www_secure
    
    Buka file tersebut untuk mengeditnya.
    root@secure-webserver:/etc/apache2/sites-available# nano www_secure 
    
    Tambahkan tulisan ini untuk mengatur URL Situs Web HTTPS yang akan dibuat.
    <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
            ServerAdmin webmaster@localhost
            ServerName www.server1.xyz
            DocumentRoot /var/www/server1
    
    Kemudian tulisan ini untuk file dan folder dimana file sertifikat tersebut berada.
            SSLCertificateFile    /etc/ssl/apache/apache.crt
            SSLCertificateKeyFile /etc/ssl/apache/apache.key
    
    Simpan file tersebut.
  • Kemudian aktifkan situs tersebut dengan perintah dibawah ini.
  • root@secure-webserver:/etc/apache2/sites-available# a2ensite www_secure
    
  • Kita buat folder dan file index.html untuk isi konten dari Web Server ini.
  • mkdir /var/www/server1
    cd /var/www/server1
    
    Buat file index.html dan isi dengan beberapa tag HTML.
    nano index.html
    
    <H1>SECURE WEBSITES, WWW.SERVER1.XYZ</H1>
    
  • Kemudian reload konfigurasi apache2.
  • service apache2 reload
    
  • Kita lakukan pengujian pada Client dengan membuka situs https://www.server1.xyz pada Browser, maka akan muncul seperti ini.
  • Kenapa bisa seperti ini, karena sertifikat CA yang kita buat tadi merupakan tanda tangan sendiri dan belum masuk dalam daftar sertifikat yang dipercaya oleh browser.
  • Klik Advance dan proceed to www.server1.xyz untuk lanjut membuka isi dari Web Server ini.
  • Dan inilah sertifikan yang telah kita buat sebelumnya.

Komentar