Categories
Dokumentasi

Mengaktifkan SSL (HTTPS) Pada Web Berbasis Apache dan Open SSL

Salah satu jalan kejahatan di dunia maya adalah penyadapan. Enkripsi adalah teknik untuk mengacak pesan, sehingga akan sulit dibaca oleh penyadap, tetapi mudah dibaca oleh penerima yang sah. Oleh karena itu, web atau servis di internet sudah selayaknya dienkripsi, antara lain dengan SSL/TLS.

HTTPS adalah cara aman dalam berinternet. Sertifikat SSL/TLS digunakan untuk mewujudkan HTTPS. Sertifikat tersebut dipasang di server. Setelah itu dapat dites.

— Mengaktifkan SSL (HTTPS) Pada Web Berbasis Apache dan Open SSL
https://bptsi.unisayogya.ac.id/mengaktifkan-ssl-https-pada-web-berbasis-apache-dan-open-ssl/ 2019-12-30 15:10:33

Daftar Isi

Perhatian!!
Mungkin tampilan akan berbeda tergantung di mana membeli sertifikat dan mungkin juga ada perubahan tampilan dari penyedia sertifikat. Konfigurasi ini dilakukan pada server Ubuntu.

Alternatif 1: SSL Terpercaya (Berbayar)

|-Membuat CSR

(sumber: https://www.sslshopper.com/article-most-common-openssl-commands.html, terakhir diakses 8 Jan 2020)

userpc@pc:~/# mkdir /etc/ssl
userpc@pc:~/# cd /etc/ssl
userpc@pc:/etc/ssl# openssl req -new -nodes -out /etc/ssl/CSRfile.csr -newkey rsa:4096 -keyout /etc/ssl/private.key

jika ada pertanyaan tentang password, tekan enter saja, tidak perlu diisi

|-Request Sertifikat

  1. Salin teks CSR yang sudah dibuat apa adanya ke kotak yang tersedia
    salin-csr
  2. Isi informasi administratif, kemudian tekan tombol lanjut
    isi-info
  3. Pilih salah satu metode validasi, misalnya validasi email
    validasi
  4. Buka email validasi, salin kode, kemudian klik link validasi yang ada di email tersebut
    email-confirm
  5. Masukkan/tempel kode untuk melakukan verifikasi
    verifikasi
  6. Unduh sertifikat
    unduh-sertifikat
    Untuk kasus ini, UNISA mendapatkan 4 sertifikat, yaitu ChainCA2.crt, ChainCA1.crt, RootCA.crt, dan domain.crt. Sertifikat chain dan root tersebut dinamakan sertifikat Intermediate.
  7. Buka teks editor biasa (notepad atau gedit misalnya), kemudian salin ChainCA2.crt, ChainCA1.crt dan RootCA.crt ke dalam dokumen baru dan disimpan dengan nama *.ca-bundle, misalnya intermediate.ca-bundle.
    membuat-cabundle
  8. Salin domain.crt dan intermediate.ca-bundle ke folder /etc/ssl
    userpc@pc:~/Download# cp domain.crt /etc/ssl/domain.crt
    userpc@pc:~/Download# cp intermediate.ca-bundle /etc/ssl/
    intermediate.ca-bundle

Alternatif 2: SSL Terpercaya (Gratis)

Penting! Siapkan alamat email terlebih dahulu dan port 80/443 dapat diakses dari internet

  1. Buka web https://certbot.eff.org/, kemudian pilih instruksi untuk mendapatkan Certbot
    pilih instruksi mendapatkan certbot
  2. Pilih jenis server dan sistem operasi
    pilih jenis server dan sistem operasi
  3. Ikuti instuksi untuk menginstal Certibot, nanti akan bertemu pilihan mau mendapatkan sertifikat plus konfigurasi otomatis atau cuma dapatkan sertifikat saja. Untuk server yang lebih dari 1 sertifikat sebaiknya pilih cuma dapatkan sertifikat saja

Alternatif 3: SSL Buat Sendiri (Gratis)

(sumber: https://medium.com/@tbusser/creating-a-browser-trusted-self-signed-ssl-certificate-2709ce43fd15, terakhir diakses 11 Jan 2020)

|-Membuat Pasangan Private Key-Public Key

Langkah ini hanya untuk membuat pasangan private key dan public key

userpc@pc:~/# openssl genrsa -out privatekey.pem 2048userpc@pc:~/# openssl rsa -in privatekey.pem -out publickey.pem -pubout -outform PEM

|-Membuat Sertifikat sebagai Pembuat Sertifikat Pribadi (seperti Perusahaan SSL)

Perhatian! Langkah ini hanya dilakukan sekali saja. Untuk permintaan-permintaan sertifikat tinggal menggunakan rootCA yang sudah ada.

  1. Buat password yang akan digunakan untuk membuat kunci, misalnya: katasandiperusahaaanku
    userpc@pc:~/# mkdir /etc/ssl/perusahaanSSLpribadi
    userpc@pc:~/# cd /etc/ssl/perusahaanSSLpribadi
    userpc@pc:/etc/ssl/perusahaanSSLpribadi# echo "katasandiperusahaaanku" > /etc/ssl/perusahaanSSLpribadi/password.info
  2. Buat serial number
    userpc@pc:/etc/ssl/perusahaanSSLpribadi# echo 1000 > /etc/ssl/perusahaanSSLpribadi/rootCAAman.srl
  3. Buat sertifikat Intermediate
    userpc@pc:/etc/ssl/perusahaanSSLpribadi# openssl genrsa -des3 -passout pass:$(cat /etc/ssl/perusahaanSSLpribadi/password.info) -out /etc/ssl/perusahaanSSLpribadi/rootCAAman.key 4096
    userpc@pc:/etc/ssl/perusahaanSSLpribadi# openssl req -x509 -new -nodes -passin pass:$(cat /etc/ssl/perusahaanSSLpribadi/password.info) -key /etc/ssl/perusahaanSSLpribadi/rootCAAman.key -sha256 -days 18250 -out /etc/ssl/perusahaanSSLpribadi/rootCAAman.pem
    userpc@pc:/etc/ssl/perusahaanSSLpribadi# cp /etc/ssl/perusahaanSSLpribadi/rootCAAman.pem /etc/ssl/perusahaanSSLpribadi/intermediate.ca-bundle

    Contoh isian CA:
    Country Name (2 letter code) [AU]:ID
    State or Province Name (full name) [Some-State]:Indonesia
    Locality Name (eg, city) []:Indonesia
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Keamanan SSL Pribadi
    Organizational Unit Name (eg, section) []:SSL
    Common Name (e.g. server FQDN or YOUR name) []:Keamanan SSL Pribadi
    Email Address []:
  4. Distribusikan rootCAAman.pem agar dapat diimpor ke Otoritas Terpercaya
    memasukkan otoritas SSL pribadi
  5. Sertifikat tersebut dikenal aman oleh browser/aplikasi, meskipun tidak dikenal secara internal/bawaan dari browser/aplikasi
    aman meskipun sertifikat tidak dikenal secara internal oleh aplikasi

|-Meminta Sertifikat dari Pembuat Sertifikat Pribadi

Perhatian! Tentukan folder yang berbeda untuk membuat setiap sertifikat yang berbeda

  1. Membuat CSR (misalnya folder ifi)
    jika ada pertanyaan tentang password, tekan enter saja, tidak perlu diisi
    jika ada pertanyaan CN (Common Name), diisi dengan alamat webnya, misalnya *.domain1.dev
    userpc@pc:~/# mkdir /etc/ssl/ifi/
    userpc@pc:~/# cd /etc/ssl/ifi/
    userpc@pc:/etc/ssl/ifi# openssl req -new -nodes -out /etc/ssl/ifi/CSRfile.csr -newkey rsa:4096 -keyout /etc/ssl/ifi/private.key

    Contoh isian CA:
    Country Name (2 letter code) [AU]:ID
    State or Province Name (full name) [Some-State]:Indonesia
    Locality Name (eg, city) []:Indonesia
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ikatan Fisioterapi Indonesia
    Organizational Unit Name (eg, section) []:Fisioterapi
    Common Name (e.g. server FQDN or YOUR name) []:*.ifi
    Email Address []:p****i@yahoo.com
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:IFI
  2. Mempersiapkan setting (misalnya sertifikat untuk domain1.dev dan ip 192.168.5.2, tambahkan localhost jika diperlukan)
    userpc@pc:/etc/ssl/ifi# nano /etc/ssl/ifi/v3.ext
    berisi
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = domain1.dev
    DNS.2 = *.domain1.dev
    IP.1 = 192.168.5.2
    #localhost
    IP.2 = 127.0.0.1
  3. Membuat Sertifikat SSL dan Intermediate dari CSR
    userpc@pc:/etc/ssl/ifi# openssl x509 -req -in /etc/ssl/ifi/CSRfile.csr -CA /etc/ssl/perusahaanSSLpribadi/rootCAAman.pem -passin pass:$(cat /etc/ssl/perusahaanSSLpribadi/password.info) -CAkey /etc/ssl/perusahaanSSLpribadi/rootCAAman.key -CAserial /etc/ssl/perusahaanSSLpribadi/rootCAAman.srl -out /etc/ssl/ifi/domain.crt -days 36500 -sha256 -extfile /etc/ssl/ifi/v3.ext
  4. Salin Berkas Intermediate
    userpc@pc:/etc/ssl/ifi# cp /etc/ssl/perusahaanSSLpribadi/intermediate.ca-bundle /etc/ssl/ifi/intermediate.ca-bundle && cp /etc/ssl/perusahaanSSLpribadi/rootCAAman.srl /etc/ssl/ifi/rootCAAman.srl

|-Skrip Instalasi Sertifikat di Windows

Unggah sertifikat di drive, kemudian buat skrip berikut ini dengan nama pasangRootCAAman.bat:

@nama berkas: pasangRootCAAman.bat
@rem unduh Root CA dari Drive (alamat: https://drive.google.com/file/d/1YUEx7PMI5sqmsiJ2KPZ_fWIQAzhvEtIz/edit)
@rem alternatif perintah, tetapi untuk alasan backward compatibility tidak digunakan: powershell Invoke-WebRequest -Uri "https://drive.google.com/uc?export=download`&id=1YUEx7PMI5sqmsiJ2KPZ_fWIQAzhvEtIz" -OutFile %homepath%\Downloads\rootCAAman.pem 
powershell -command "(New-Object Net.WebClient).DownloadFile('https://drive.google.com/uc?export=download`&id=1YUEx7PMI5sqmsiJ2KPZ_fWIQAzhvEtIz', '%homepath%\Downloads\rootCAAman.pem')"
@rem pasang Root CA ke sistem
powershell certutil.exe -addstore root %homepath%\Downloads\rootCAAman.pem
@rem aktifkan ImportEnterpriseRoots firefox
powershell NEW-Item -Path "HKLM:\Software\Policies\Mozilla\Firefox\Certificates" -Force
powershell New-ItemProperty -Path "HKLM:\Software\Policies\Mozilla\Firefox\Certificates" -Name "ImportEnterpriseRoots" -Value 1 -PropertyType DWORD -Force
pause

Instruksikan pengguna untuk memasang dengan cara klik kanan pada pasangRootCAAman.bat, kemudian pilih Run As Administrator

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi

5 replies on “Mengaktifkan SSL (HTTPS) Pada Web Berbasis Apache dan Open SSL”

Wah artikel nya sangat menarik, banyak informasi bermanfaat yang saya ambil dari artikel ini. Saya baru tau kalau apache bisa diberikan SSL. Terimakasih min atas artikel nya

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.