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
Daftar Isi
- Alternatif 1: SSL Terpercaya (Berbayar)
- Alternatif 2: SSL Terpercaya (Gratis)
- Alternatif 3: SSL Buat Sendiri (Gratis)
- |-Membuat Pasangan Private Key-Public Key
- |-Membuat Sertifikat sebagai Pembuat Sertifikat Pribadi (seperti Perusahaan SSL)
- |-Meminta Sertifikat dari Pembuat Sertifikat Pribadi
- |-Skrip Instalasi Sertifikat di Windows
- Instalasi/Konfigurasi
- Error Aktivasi SSL Pada Windows (Kasus: Cannot Load mod_ssl.so)
- Antisipasi Akses SSL Menggunakan IP Publik Maupun Lokal
- |-Alternatif 1: Redirect IP ke Domain
- |-Alternatif 2: Jika IP Lokal Tidak Memungkinkan Di Redirect (menggunakan SNI)
- Adaptasi
- Testing
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
- Salin teks CSR yang sudah dibuat apa adanya ke kotak yang tersedia
- Isi informasi administratif, kemudian tekan tombol lanjut
- Pilih salah satu metode validasi, misalnya validasi email
- Buka email validasi, salin kode, kemudian klik link validasi yang ada di email tersebut
- Masukkan/tempel kode untuk melakukan verifikasi
- 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. - 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.
- 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
- Buka web https://certbot.eff.org/, kemudian pilih instruksi untuk mendapatkan Certbot
- Pilih jenis server dan sistem operasi
- 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 2048
userpc@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.
- 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 - Buat serial number
userpc@pc:/etc/ssl/perusahaanSSLpribadi# echo 1000 > /etc/ssl/perusahaanSSLpribadi/rootCAAman.srl
- 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 []: - Distribusikan rootCAAman.pem agar dapat diimpor ke Otoritas Terpercaya
- Sertifikat tersebut dikenal aman oleh browser/aplikasi, meskipun tidak dikenal secara internal/bawaan dari browser/aplikasi
|-Meminta Sertifikat dari Pembuat Sertifikat Pribadi
Perhatian! Tentukan folder yang berbeda untuk membuat setiap sertifikat yang berbeda
- 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.devuserpc@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 - 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
berisiauthorityKeyIdentifier=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 - 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/
-out /etc/ssl/ifi/domain.crt -days 36500 -sha256 -extfile /etc/ssl/ifi/v3.extrootCAAman
.srl - 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
- https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc771525(v=ws.10)?redirectedfrom=MSDN
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil
- https://stackoverflow.com/questions/5327495/list-all-environment-variables-from-the-command-line
- https://wiki.mozilla.org/CA/AddRootToFirefox
- https://admx.help/?Category=Firefox&Policy=Mozilla.Policies.Firefox::Certificates_ImportEnterpriseRoots
- https://devblogs.microsoft.com/scripting/update-or-add-registry-key-value-with-powershell/
5 replies on “Mengaktifkan SSL (HTTPS) Pada Web Berbasis Apache dan Open SSL”
[…] Pastikan bahwa komunikasi antar sistem terjadi secara aman, misalnya melalui https, misalnya Mengaktifkan SSL (HTTPS) Pada Web Berbasis Apache dan Open SSL […]
[…] Inspirasi: https://pdsi.unisayogya.ac.id/mengaktifkan-ssl-https-pada-web-berbasis-apache-dan-open-ssl/2/#feeder… […]
[…] Process Monitor untuk melihat lebih dalam permasalahannya (https://pdsi.unisayogya.ac.id/mengaktifkan-ssl-https-pada-web-berbasis-apache-dan-open-ssl/3/#errora…). Filter pada […]
[…] sertifikat SSL yang berada di folder /pathSSL. Belum punya? Baca di sini jika belum […]
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