Cara Install HTTPS di localhost

Cara Install HTTPS di localhost Apache

Hypertext Transfer Protocol Secure (HTTPS) adalah versi terenkripsi dari protokol HTTP. Enkripsinya menggunakan protokol Secure Sockets Layer (SSL), atau yang lebih baru Transport Layer Security (TLS), sering juga disebut sebagai HTTP over SSL atau HTTP over TLS. Secara default HTTPS berjalan pada port 443.

Mengapa Harus HTTPS?

Faktor penting mengapa harus menggunakan HTTPS:

  • Keamanan – Mengamankan data dengan metode enkripsi yang ditransmisikan antara browser dengan server. Menjaga integritas website dari peretas yang dapat menginjeksi malware. Melindungi website dan pengunjung dari kenakalan provider internet yang memasukkan iklan mereka.
  • SEO – Sejak tahun 2014 Google sudah mulai memberikan peringkat lebih tinggi kepada website yang memakai HTTPS.
  • Web Masa Depan – Teknologi web masa depan, mulai dari API, AMP, PWA semuanya mengharuskan menggunakan HTTPS.

Perlukah HTTP di localhost (development server)?

Tentu saja perlu untuk menguji aplikasi sebelum berjalan di production server apakah tidak ada masalah. Sehingga tidak perlu langsung mengujinya di production server, cukup di development server untuk pengujian tahap pengembangan.

Tool apa yang digunakan?

Tool yang dapat digunakan untuk membuat HTTPS dapat berjalan di localhost yaitu mkcert. mkcert adalah sebuah tool untuk membuat sertifikat SSL untuk HTTPS secara lokal dan dipercaya oleh web browser. mkcert dapat membuat sertifikat untuk host localhost, custom host, atau IP address seperti 127.0.0.1. mkcert mendukung sistem operasi Linux, macOS, dan Windows.

Install HTTPS di localhost Linux

Tutorial ini menggunakan:

  • OS Linux Ubuntu 16.04 64-bit
  • brew
  • mkcert
  • Apache
  • Mozilla Firefox

Install brew

mkcert diinstall via brew package manager. Install brew terlebih dahulu, baca tutorial Cara Install brew di Linux.

Install mkcert

Install paket dependensi.

Install mkcert via brew.

Hasilnya

Install Certificate Authority (CA).

Hasilnya

Selanjutnya membuat certificate untuk localhost

Hasilnya

Terdapat dua file yang dihasilkan, certificate localhost.pem dan key localhost-key.pem. Semuanya berada di folder tempat menjalankan perintah.

Konfigurasi Apache untuk HTTPS

Install Apache.

Memindahkan certificate dan key.

Konfigurasi virtualhost localhost untuk port 443 (HTTPS).

Cari opsi certificate dan ubah seperti di bawah ini.

Aktifkan modul SSL untuk Apache dan virtualhost default-ssl.

Pengujian

Akses https://localhost di browser, hasilnya seperti gambar di bawah ini.

Cara Install HTTPS di localhost
HTTPS di localhost Apache

HTTPS untuk Custom VirtualHost

Membuat certificate untuk virtualhost musaamin.oksip.

Hasilnya

Memindahkan certificate.

Membuat folder untuk virtualhost musaamin.oksip.

Buat file index.html.

Isinya

Membuat konfigurasi virtualhost di Apache.

Isinya

Mengaktifkan virtualhost musaamin.oksip.

Restart Apache.

Memasukkan host musaamin.oksip ke dalam konfigurasi hosts.

Tambahkan

Pengujian, akses http://musaamin.oksip, harus redirect ke https://musaamin.oksip sesuai dengan konfigurasi pada virtualhost Apache.

Cara Install HTTPS di localhost
HTTPS di musaamin.oksip Apache

Selamat mencoba 🙂

32 Comments

  1. mas….tanya
    add domain caranya bagaimana? domain yang pertama pakai cloudflare.
    sekarang mau masuk cloudflare tdk bisa. klo dengan cara ini nanti semua domain yang sudah terpasang cloudflare apakah berubah?

    • pertanyaannya kurang jelas. add domain di mana, di cloudflare atau cpanel? masuk cloudflare, maksudnya tidak bisa login di cloudflare? domain yang memakai cloudflare, berarti untuk melakukan pengaturan dns record misal menambah subdomain semuanya dikonfigurasikan di cloudflare.

  2. saya pake vps, 1 ip utk 2 domain. Apa tutorial ini bisa berfungsi utk kedua domain saya? apa ada cara husus? ditunggu jawabnya pak.

    • tutorial ini hanya untuk kebutuhan development di komputer sendiri (localhost). kalau sudah pakai domain internet, pakai SSL yang dikeluarkan oleh certificate authority yang dikenali oleh web browser. yang gratis bisa pakai SSL dari Let’s Encrypt.

  3. Hallo mas guide nya membantu banget tetapi saya mau bertanya.. itu kan IP Local /local host kita custom domain buat akses via jaringan lokal yang sudah terpasang SSL/TLS nya.. apakah nanti andai kata user lain internal yang mencoba akses domain lokal tersebut langsung trust SSL/TLS nya atau ada muncul error tidak trust dari sisi user yang mencoba akses nya mas??
    dan kalau ada muncul tidak trust dari sisi user nya pada saat akses ke domain lokal tersebut apakah ada cara agar web server lokal kita pada saat di akses oleh semua user lokal itu langsung trust tanpa diinstall cert nya di browser user tersebut mas??

  4. worked pak,,kalau client lain kalau mau pake https keluar trusted error,,

    bagaimana cara membuat https di local kita namun bisa di akses client lain???

  5. bang kalau untuk setingan ssl server local tapi bisa diakses oleh IP Publik,,,apa cara ini bisa digunakan?

  6. mas kalau tidak muncul
    The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)!
    The local CA is now installed in Java’s trust store!
    itu gimana ya?

  7. Siang Pak Musa, semoga sehat dan sukses selalu.
    Klo diaplikasikan ketika diakses oleh client lain melalui jaringan apakah memungkinkan ?
    Jika memungkinkan, apakah ada tutorialnya.

    Terimakasih.

  8. Assalamu’alaykum min
    alhamdulillah min saya sudah berhasil berkat tutorial ini. https sudah berjalan namun tetap cert nya tidak dikenali keamanannya oleh chrome dan mozilla… itu kenapa ya min?

Leave a Reply

Your email address will not be published. Required fields are marked *