Konfigurasi Web Server Apache2 dan SSL pada Apache2

Web Server

Web Server merupakan komputer ataupun server yang memproses perngiriman file website ke web browser. Web server terdiri dari Hardware dan Software yang menggunakan protokol HTTP (HyperText Transfer Protocol) untuk meresposn permintaan client web dari WWW (World Wide Web). Dari sisi Hardware, Web Server terhubung ke internet untuk bertukar informasi (data atau file)di antara perangkat lain yang saling terhubung. Data yang dimaksud dapat berupa gambar, file, dan lain lain.

Untuk menjalankan Web Server kita harus menggunakan software yang bertugas untuk mengelola data atau informasi yang ingin dijalankan Web Server. Salah satu software yang banyak digunakan untuk menjalankan Web Server adalah Apache2. Jadi pada kesempatan kali ini saya akan membahas tentang Apache2 itu sendiri dan juga menjelaskan bagaimana melakukan konfigurasi pada Apache2.

Apache2

Apache2 Server, yang lebih dikenal dengan sebutan Apache, merupakan salah satu aplikasi web server yang paling populer dan banyak digunakan. Web server ini menjadi tulang punggung infrastruktur web bagi banyak situs web, baik yang berskala kecil hingga besar. Apache2 adalah versi terbaru dari Apache yang telah mengalami banyak perbaikan. Artikel ini akan membahas mengenai Apache2 dan Konfigurasinya pada Ubuntu 20.04.

Kenapa menggunakan Apache2 ?

Apache2 merupakan salah satu web server populer yang telah digunakan selama bertahun-tahun. Namun Apache2 bukan satu-satunya web server yang ada. NGINX merupakan salah satu web server juga yang banyak digunakan pada masa kini. Terus kenapa kita membahas Apache2?

Pada dasarnya setiap web server memiliki keunikan dan keunggulan pada masing-masing layanannya. Apache2 memiliki modul dan fitur yang beragam, seperti pemrosesan bahasa pemrograman seperti PHP dan Python, atau manipulasi permintaan HTTP yang kompleks.

Selain itu Apache2 juga menggunakan file konfigurasi yang relatif sederhana dan mudah dibaca dan diedit.

SSL

Secure Socket Layer atau yang disingkat SSL merupakan protokol keamanan yang digunakan untuk enkripsi data antara transmisi server dan klien di internet. Fungsi dari enskripsi ini untuk mengamankan data yang sedang bertransmisi sehingga pihak yang tidak berwenang tidak dapat menyadap atau mencuri data. SSL memberikan enkripsi yang kuat untuk melindungi data selama ditransmisikan ke internet dan memberikan kepercayaan dan keamanan bagi klien. Apalagi dunia sekarang yang semakin terhubung dan rentan terhadap serangan siber, mengaktifkan SSL pada situs web menjadi prioritas utama memastikan integritas dan keamanan informasi.

Step 1 – Instalasi
  1. Seperti biasa sebelum kita melakukan instalasi, pastikan untuk mengupdate package yang ada pada server.$sudo apt update -y && apt upgrade -y
  2. Install apache2 menggunakan perintah dibawah.$sudo apt install apache2
  3. Pergi ke direktori apache2.cd /etc/apache2/sites-available
Step 2 – Konfigurasi File Apache2
  1. Pertama kita akan melakukan konfigurasi pada file konfig apache2.$sudo vim /etc/apache2/sites-available/000-default.confIsikan file konfig apache dengan perintah dibawah, kemudian sesuaikan dengan kebutuhan yang ada. Untuk penamaan file tertentu dapat disesuaikan dengan kondisi masing – masing.<VirtualHost *:80> ServerName <ip /domain server> Redirect 301 / https://<ip / domain server>/ </VirtualHost> <VirtualHost *:443> DocumentRoot /web/ ServerName <ip atau domain server> SSLEngine on SSLCertificateFile /ssl/apache.crt SSLCertificateKeyFile /ssl/apache.key </VirtualHost>Penjelasan perintah yang digunakan:
    • SSLEngine on: Mengaktifkan SSL untuk web server.
    • SSLCertificateFile: Mendeklarasikan dimana letak file Sertifikat Server untuk SSL nya.
    • SSLCertificateKeyFile: Mendeklarasikan dimana letak file key Sertifikat Server yang digunakan untuk SSL.
    • DocumentRoot: Mendeklarasikan direktori dimana file index nya terletak
  2. Buatlah direktori baru untuk menyimpan file Index untuk web nantinya, kemudian pergi ke direktori tersebut.$sudo mkdir /web $cd /web $sudo vim index.html
  3. Buat file baru sebagai Index untuk Web kita.$sudo vim index.htmlKalian dapat mengisi apapun untuk file index nya, disini saya hanya akan menggunakan tag H2 html untuk membuat judul pada halaman web.<h2>Welcome to My Website</h2> <p>Thank You For Coming</p>
  4. Pergi ke direktori Apache2.$cd /etc/apache2
  5. Masuk ke file konfig apache2. Di file ini berisi semua konfigurasi default yang dimiliki Apache2.$sudo vim /etc/apache2/apache2.conf
  6. Tambahkan perintah dibawah agar direktori “/web” dapat diakses web server. Sehingga halaman web dapat muncul.<Directory /web> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
Step 3 – Membuat SSL untuk Apache2
  1. Selanjutnya, kita akan melakukan konfigurasi untuk SSL Apache2-nya. Pertama Aktifkan fitur SSL untuk Apache2 dengan mengetikkan perintah dibawah.$a2enmod ssl
  2. Buatlah direktori untuk menyimpan Sertifikat SSL yang akan dibuat nantinya.$sudo mkdir /ssl $cd /ssl
  3. Kita akan membuat key untuk Sertifikat Authority. Untuk perintah yang digunakan dapat dilihat dibawah ini.$sudo openssl genrsa -out CAkey.key 2048Penamaan untuk file nya dapat disesuaikan, tidak harus CAkey. Perintah angka “2048” menunjukan panjang key yang dibuat, disini saya menggunakan key dengan panjang 2048 huruf.
  4. Kemudian, kita buat file Sertifikat Authority nya. Gunakan perintah dibawah untuk membuatnya.$sudo openssl req -new -x509 -days 365 -key CAkey.key -out CA.crtPerintah “-days” menunjukkan berapa lama sertifikat itu akan berlaku. Masukkan juga file key untuk Sertifikat Authority nya menggunakan perintah “-key”.
  5. Setelah menggunakan perintah di atas nantinya akan diminta mengisi suatu formulirUntuk pengisian dapat disesuaikan dengan keinginan masing – masing.
  6. Selanjutnya, kita akan membuat file request untuk membuat Sertifikat Server nantinya.$sudo openssl req -new > apache.req -nodesSetelah menggunakan perintah di atas nantinya akan diminta untuk mengisi suatu formulir.Untuk hal yang akan di isi kalian dapat menyesuaikan dengan keadaan masing – masing. Pada bagian Common Name di isi dengan IP Address atau Domain dari Web Server yang akan digunakan.
  7. Selanjutnya kita akan membuat rsa key untuk Sertifikat Server. Disini perintah rsa berguna untuk mengenkripsi isi file yang ada pada privkey.pem dengan metode enkripsi rsa dan kemudian disimpan pada file dengan nama apache.key.$sudo openssl rsa -in privkey.pem -out apache.keyFile privkey.pem akan muncul setelah menjalankan perintah membuat file request.
  8. Terakhir kita akan membuat Sertifikat Server dengan memasukkan key dari Serfitikat Server dan juga Sertifikat Authority agar Sertifikat Server memiliki tanda tangan atas Sertifikat Authority tersebut.$sudo openssl x509 -req -in apache.req -signkey apache.key -CA CA.crt -CAkey CAkey.key -days 365 -out apache.crt -CAcreateserial
  9. Restart layanan apache2 dengan perintah dibawah.$sudo systemctl restart apache2
Step 4 – Pengujian atau Pengetesan
  1. Pengujian dapat dilakukan menggunakan Web Browser pada client. Dengan mengetikkan IP Address ataupun Domain untuk Web Servernya.
  2. Nantinya akan ada peringatan karena SSL yang kita gunakan bukan merupakan SSL resmi, cukup klik advanced dan klik Proceed to <ip atau domain web> (unsafe).
  3. Beginilah hasil yang akan ditampilkan pada web yang saya buat. Hal ini tentu saya dapat berbeda dari yang kalian miliki, tergantung pada isi file index.html kalian.
  4. Kalian juga dapat melihat detail Sertifikat kalian dengan mengklik not secure. Disitu ada beberapa detail mengenai Common Name dan juga Sertifikat Authority apa yang bertanda tangan pada Sertifikat Server kalian.

Kesimpulan

Menggunakan SSL merupakan langkah penting dalam meningkatkan keamanan dan privasi pada situs web kita. SSL menyediakan enkripsi data yang kuat untuk melindungi data pengguna dari ancaman peretasan dan pencurian data. Semoga dengan mengikuti tutorial ini kalian dapat dengan mudah mengaktifkan SSL pada situs web yang dimiliki. Serta selalu menjaga keamanan situs web secara optimal.

Sekian dari saya, Semoga tutorial ini dapat membantu kalian~

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti. Klik disini untuk info lengkapnya.

Penulis : M. Syawal Saputra