Beli SSL dan pasang HTTPS untuk website di server VPS.
—
Disini saya akan mendemonstrasikan cara beli SSL dan pasang HTTPS ke website latcoding menjadi https://latcoding.com
atau https://www.latcoding.com
.
SSL jika dipasang ke HTTP akan menjadi HTTPS (Secure).
HTTP + SSL = HTTPS
Berikut komponen yang saya gunakan:
- VPS di cloud AWS (EC2 Instance)
- Ubuntu 18.04
- SSL Global Sign (Alpha SSL)
- Webserver Apache
Daftar isi artikel:
Beli SSL
Saya beli SSL di rumahweb.com.
Harap daftar dulu di rumahweb.com, jika sudah login dan masuk ke halaman dashboard. Kita akan order SSL dari halaman dashboard.
Klik Order -> Internet Security -> Sertifikat SSL -> Klik Order
Klik SSL Saja -> masukkan nama domain latcoding.com, klik Cari domain kamu .. Beberapa saat akan muncul nama domainnya di hasil pencarian, klik Next
Pilih Providernya, SSL Global Sign -> Paket GlobalSign Starndard AlphaSSL.
Sebenarnya ada beberapa provider SSL lain, yaitu Sectigo, Entrust. Tapi kita pilih SSL Global Sign (Standard AlphaSSL) karena kita mau tempelkan SSLnya ke https://www.latcoding.com
dan https://latcoding.com
. Bisa dilihat disitu ada keterangan single (includes www) artinya SSL bisa dipakai ke www juga.
Biayanya kira-kira 170 ribuan (harga 13 Agustus 2023). Kalau sudah klik Lanjut.
Lanjutkan pilih pembayaran, disini saya pilih VA BCA. Klik Tidak menggunakan pada faktur pajak, karena saya tidak memerlukan faktur pajak
Ringkasan pembayaran, termasuk PPN totalnya menjadi Rp. 192.300.
Klik CHECKOUT
Setelah itu lakukan pembayaran ke VA BCA, bisa melalui mobile banking.
Konfigurasi SSL
Ada beberapa langkah untuk mengkonfigurasi SSL:
Buat CSR (Certificate Signing Request)
Setelah pembayaran berhasil, status SSL akan Active
namun belum bisa digunakan. Kita perlu mengkonfigurasinya terlebih dahulu dengan membuat CSR dan merequest SSLnya. Klik Manage untuk masuk ke detail.
Disitu statusnya Awaiting Configuration, artinya konfigurasi SSL belum dibuat. Klik Manage SSL untuk membuat konfigurasi SSL
Kita perlu membuat CSR (Certificate Signing Request) agar SSLnya bisa dikeluarkan/issued. CSR berisi Country, Email, Common Name, dll.
Buat CSR, masuk ke terminal VPS, jalankan command berikut:
openssl req -new -newkey rsa:2048 -nodes -keyout latcodingcom.key -out latcodingcom.csr
File CSR kita namakan latcodingcom.csr
, sedangkan latcodingcom.key
merupakan private key. Private key digunakan untuk mendecrypt packet yang diencrypt oleh browser. Intinya private key ini jangan sampai hilang, simpan baik-baik nanti kita akan gunakan pada saat konfigurasi vhost/virtualhost apache.
Pada gambar diatas isikan Country Name, Province, Locality Name, dll isikan sesuai lokasi kalian berada.
Yang paling penting disini adalah Common Name
isikan dengan nama domain kalian. Diawali dengan www, contoh www.latcoding.com
karena nanti kita mau kaitkan httpsnya ke www juga.
Setelah menjalankan command diatas akan tergenerate 2 file:
Setelah itu copy isi dari latcodingcom.csr ke form CSR tadi, klik Lanjutkan
Contact Validation
Step berikutnya validasi kontak. Kita disuruh memasang kode validasi untuk memastikan request SSL memang benar diajukan oleh pemilik domain.
Ada 3 jenis kontak validasi:
- DNS Record
Kode validasi disisipkan pada TEXT record pada DNS domain (dalam contoh ini latcoding.com) - Email
URL validasi akan dikirimkan ke email yang memiliki domain latcoding.com, misal admin@latcoding.com. Kita butuh mailserver di latcoding.com jika ingin menggunakan metode ini - URL
Kode validasi disisipkan ke website latoding.com, misal http://latcoding.com/.well-known/pki-validation/09934332338.txt
Saya pilih DNS Record, karena caranya relatif mudah. Klik Lanjutkan
Sekarang bisa dilihat status requestnya Awaiting For Validation, artinya sedang menunggu untuk divalidasi. Sekarang tinggal buat TEXT recordnya, masuk lagi ke Manage SSL
Copy value TEXT record (_globalsign.domain.verificationxx)
Pada DNS latcoding.com, buat record baru TXT dan isikan valuenya dengan (_globalsign.domain.verificationxx), klik Create records
Tunggu beberapa saat (max 24jam), certificate akan di issued. Ada beberapa certificate nanti: CSR, rootCert, interCert, X509Cert, PKCS7Cert. Tapi yang akan kita gunakan hanya X509Cert
, interCert
dan rootCert
. Download 3 certificate tersebut.
Ke 3 certificate tersebut perlu kita gabungkan menjadi 1 file (bundle) menjadi ca-bundle.pem
, buka terminal jalankan command berikut untuk menggabungkannya:
cat latcoding.com_X509.txt latcoding.com_interCert.txt latcoding.com_rootCert.txt > ca-bundle.pem
Setelah digabung, kira-kira hasilnya seperti ini (saya potong kodenya agar tidak terlalu panjang):
-----BEGIN CERTIFICATE-----
MIIGTzCCBTegAwIBAgIMQIIHWnp9E0QnVbzZMA0GCSqGSIb3DQEBCwUAMEwxCzAJ
...
1opVfVlU7Gz5/DmTeXsC0tJtuzuxSMN5D8kmLtjsHWbgP4tB3hoV2SsoSFRiYPfy
8KBtuC1qcNc0wGaOICJFXDRoQnHdEY39NGH1iFZWhwP+Cis=
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIEijCCA3KgAwIBAgIQfU1CqStDHX5kU+fBmo1YdzANBgkqhkiG9w0BAQsFADBX
...
5bHoz7cYU27LUvh1n2WSNnC6/QwFSoP6gNKa4POO/oO13xjhrLRHJ/04cKMbRALt
JWQkPacJ8SJVhB2R7BI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
...
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
-----END CERTIFICATE-----
- merah: latcoding.com_X509.txt
- hijau: latcoding.com_interCert.txt
- biru: rootCert.txt
Copy ca-bundle.pem
ke server VPS dan jadikan 1 folder dengan file latcodingcom.key
. 2 file ini yang akan kita gunakan pada konfigurasi vhost apache. Saya taruh 2 file ini difolder /home/ubuntu/ssl/
.
Note: untuk file latcodingcom.csr abaikan saja, kita tidak memerlukan file .csr lagi.
Konfigurasi VirtualHost Apache
Buka konfigurasi virtualhost apache dan buat sebuah file konfigurasi https latcoding.com.
cd /etc/apache2/sites-available/
vi latcoding.com.ssl.conf
Lalu isikan konfigurasi latcoding.com.ssl.conf
seperti berikut:
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/xx/xx/latcoding.com"
ServerName latcoding.com
ServerAlias www.latcoding.com
<Directory "/xx/xx/latcoding.com">
Options -Indexes
ServerSignature Off
AllowOverride All
</Directory>
SSLCertificateFile /home/ubuntu/ssl/ca-bundle.pem
SSLCertificateKeyFile /home/ubuntu/ssl/latcodingcom.key
</VirtualHost>
</IfModule>
- Pastikan mod_ssl apache sudah diaktifkan
- Pastikan port 443 sudah diallow pada firewall/security group
- Definisikan serveralias, supaya HTTPS bisa mencover www juga
- Import SSL certificate pada path /home/ubuntu/ssl/<nama filenya>
Lalu aktifkan konfigurasinya dan reload apache dengan menjalankan command berikut diterminal:
sudo a2ensite latcoding.com.ssl.conf
sudo systemctl reload apache2
Testing HTTPS
Langkah terakhir tinggal mengetestnya saja. Seharusnya jika kita buka dibrowser https://www.latcoding.com
ataupun https://latcoding.com
akan terbuka dengan icon gembok.
Kalau kita klik iconnya, Connection Secure -> Ceritificate is Valid, maka akan muncul detail SSLnya
SSL sudah issued by AlphaSSL – GlobalSign. Nice.
—
Demikian tutorial Beli SSL dan pasang HTTPS untuk website di server VPS. Semoga bermanfaat!