Ketika mengunjungi sebuah website menggunakan HTTPS, biasanya kita hanya melihat ikon gembok atau indikator koneksi aman di sebelah alamat website. Namun, di balik tampilan sederhana tersebut, browser sebenarnya menjalankan serangkaian pemeriksaan untuk memastikan koneksi yang dibuat dapat dipercaya.
Salah satu pemeriksaan terpenting adalah validasi sertifikat SSL/TLS.
Browser tidak langsung mempercayai sertifikat yang dikirimkan oleh server. Browser perlu memastikan bahwa sertifikat tersebut sesuai dengan nama domain yang dikunjungi, masih berlaku, memiliki tanda tangan digital yang valid, dan dapat ditelusuri hingga Certificate Authority (CA) yang dipercaya.
Proses ini merupakan bagian dari mekanisme keamanan HTTPS yang membantu mencegah penyamaran identitas website dan melindungi komunikasi antara pengunjung dengan server.
Lalu, bagaimana sebenarnya browser memvalidasi sertifikat SSL sebelum membuka website? Apa saja yang diperiksa, dan apa yang terjadi jika sertifikat tidak memenuhi persyaratan?
Mari kita bahas secara bertahap.
Apa Itu Validasi Sertifikat SSL?
Validasi sertifikat SSL/TLS adalah proses pemeriksaan yang dilakukan browser atau klien TLS untuk memastikan bahwa sertifikat digital yang diberikan server memenuhi persyaratan kepercayaan dan identitas.
Dalam proses ini, browser tidak hanya memeriksa apakah sertifikat diterbitkan oleh CA yang dikenal. Ada beberapa aspek lain yang harus diperiksa, seperti:
- Kesesuaian nama domain.
- Masa berlaku sertifikat.
- Keabsahan tanda tangan digital.
- Kelengkapan dan validitas Certificate Chain.
- Penggunaan algoritma dan fungsi sertifikat.
- Status pencabutan sertifikat sesuai mekanisme yang digunakan.
- Persyaratan tambahan dari kebijakan browser.
Jika pemeriksaan yang diwajibkan berhasil, browser dapat melanjutkan proses pembentukan koneksi TLS.
Penting dipahami bahwa validasi sertifikat merupakan bagian dari proses handshake TLS, bukan pemeriksaan terpisah yang baru dilakukan setelah website selesai dibuka.
Kapan Browser Memvalidasi Sertifikat SSL?
Validasi sertifikat dilakukan ketika browser membangun koneksi HTTPS dengan server.
Secara sederhana, prosesnya dapat digambarkan sebagai berikut:
Pengunjung membuka website → Browser menghubungi server → TLS Handshake → Server mengirim sertifikat → Browser memvalidasi sertifikat → Koneksi TLS dilanjutkan → Website dapat diakses.
Sebelum proses ini, browser biasanya telah melakukan resolusi DNS untuk menemukan alamat IP server. Setelah itu, browser membangun koneksi menggunakan TCP atau menggunakan QUIC pada koneksi HTTP/3.
Pada tahap negosiasi TLS, browser dan server bertukar informasi untuk menentukan parameter keamanan yang akan digunakan.
Server kemudian menyampaikan sertifikat digital yang diperlukan untuk autentikasi. Browser memeriksa sertifikat tersebut sebelum menerima identitas server.
7 Tahapan Browser Memvalidasi Sertifikat SSL
Berikut tahapan utama yang terjadi ketika browser memeriksa sertifikat sebuah website.
1. Server Mengirimkan Sertifikat SSL/TLS
Ketika koneksi HTTPS dimulai, server mengirimkan sertifikat digital yang digunakan untuk mengidentifikasi website.
Dalam konfigurasi yang umum, server mengirimkan:
- Sertifikat website atau server certificate.
- Intermediate Certificate yang diperlukan untuk membangun rantai kepercayaan.
Sertifikat website berisi sejumlah informasi penting, antara lain:
- Nama domain yang tercantum dalam sertifikat.
- Public key.
- Nama penerbit sertifikat.
- Nomor seri sertifikat.
- Masa berlaku.
- Tanda tangan digital CA.
- Informasi penggunaan kunci dan ekstensi lainnya.
Browser menggunakan informasi tersebut sebagai bahan pemeriksaan.
Server umumnya tidak perlu mengirimkan Root Certificate karena root yang dipercaya biasanya sudah tersedia dalam Root Store browser atau sistem operasi.
2. Browser Memeriksa Kesesuaian Nama Domain
Pemeriksaan berikutnya adalah memastikan bahwa sertifikat memang berlaku untuk domain yang sedang dikunjungi.
Misalnya, pengunjung membuka:
Browser akan memeriksa apakah nama domain tersebut tercantum dalam identitas sertifikat.
Informasi nama domain modern umumnya terdapat pada ekstensi Subject Alternative Name (SAN).
Jika sertifikat hanya berlaku untuk contohwebsite.com, belum tentu sertifikat tersebut juga berlaku untuk www.contohwebsite.com. Keduanya perlu tercakup sesuai aturan pencocokan nama domain.
Jika nama domain tidak cocok, browser dapat menampilkan peringatan seperti:
NET::ERR_CERT_COMMON_NAME_INVALID
Artinya, identitas domain yang dikunjungi tidak sesuai dengan identitas yang tercantum dalam sertifikat.
Masalah ini dapat terjadi karena:
- Sertifikat diterbitkan untuk domain yang berbeda.
- Domain
wwwbelum tercakup dalam sertifikat. - Sertifikat lama masih terpasang setelah perubahan domain.
- Konfigurasi virtual host atau server menggunakan sertifikat yang salah.
Pemeriksaan nama domain sangat penting karena sertifikat yang valid secara kriptografis belum tentu merupakan sertifikat untuk website yang sedang dikunjungi.
3. Browser Memeriksa Masa Berlaku Sertifikat
Setiap sertifikat SSL/TLS memiliki periode validitas yang ditentukan melalui dua informasi:
- Not Before: Waktu mulai berlakunya sertifikat.
- Not After: Waktu berakhirnya masa berlaku sertifikat.
Browser memeriksa apakah waktu saat ini masih berada dalam periode tersebut.
Jika sertifikat belum berlaku atau sudah kedaluwarsa, browser dapat menolak koneksi atau menampilkan peringatan keamanan.
Contoh pesan kesalahan yang mungkin muncul:
NET::ERR_CERT_DATE_INVALIDSEC_ERROR_EXPIRED_CERTIFICATE
Sertifikat yang kedaluwarsa biasanya perlu diperbarui atau diterbitkan ulang oleh CA.
Bagi pemilik website, pemantauan masa berlaku sertifikat menjadi penting agar pengunjung tidak mengalami gangguan saat mengakses website.
4. Browser Memvalidasi Tanda Tangan Digital dan Certificate Chain
Tahap ini merupakan bagian penting dalam sistem kepercayaan sertifikat digital.
Browser perlu memastikan bahwa sertifikat website benar-benar ditandatangani oleh penerbit yang sesuai dan memiliki hubungan kepercayaan dengan CA yang dipercaya.
Proses ini melibatkan Certificate Chain atau rantai sertifikat.
Struktur sederhananya adalah:
Root CA → Intermediate CA → Sertifikat Website
Penjelasannya:
- Root CA: Menjadi titik awal kepercayaan atau trust anchor.
- Intermediate CA: Menjadi CA perantara yang memperoleh kewenangan dari CA di tingkat atas.
- Sertifikat Website: Sertifikat yang digunakan server untuk mengidentifikasi domain.
Browser memeriksa tanda tangan digital pada setiap hubungan sertifikat dalam jalur tersebut.
Browser juga harus dapat menemukan Root CA yang dipercaya sebagai titik akhir jalur validasi.
Jika sertifikat intermediate tidak tersedia, tanda tangan tidak valid, atau jalur sertifikat tidak dapat dibangun menuju trust anchor yang dipercaya, browser dapat menampilkan peringatan.
Salah satu pesan kesalahan yang mungkin muncul adalah:
NET::ERR_CERT_AUTHORITY_INVALID
Namun, pesan tersebut tidak selalu berarti CA penerbit benar-benar tidak tepercaya. Penyebabnya dapat berupa konfigurasi chain yang tidak lengkap, sertifikat yang tidak dikenal, atau masalah pada trust store perangkat.
5. Browser Memeriksa Penggunaan Sertifikat dan Algoritma Kriptografi
Browser juga memeriksa apakah sertifikat memenuhi persyaratan teknis untuk digunakan dalam koneksi TLS.
Beberapa aspek yang dapat diperiksa meliputi:
- Key Usage.
- Extended Key Usage.
- Kesesuaian public key dengan algoritma autentikasi yang digunakan.
- Kekuatan ukuran kunci.
- Algoritma tanda tangan digital.
- Ekstensi dan batasan sertifikat.
- Kebijakan keamanan yang berlaku.
Sebagai contoh, sertifikat yang digunakan untuk autentikasi server harus memiliki penggunaan kunci yang sesuai dengan kebutuhan tersebut.
Sertifikat yang tidak memenuhi persyaratan teknis dapat ditolak meskipun diterbitkan oleh CA yang dikenal.
Pemeriksaan ini membantu memastikan bahwa sertifikat tidak hanya berasal dari penerbit yang dipercaya, tetapi juga digunakan sesuai tujuan dan batasan yang ditentukan.
6. Browser Memeriksa Status Pencabutan Sertifikat
Sertifikat yang sebelumnya valid dapat dicabut sebelum masa berlakunya berakhir.
Hal ini dapat terjadi jika:
- Private key sertifikat diduga telah bocor.
- Sertifikat diterbitkan secara tidak semestinya.
- Informasi dalam sertifikat tidak lagi valid.
- Terjadi pelanggaran kebijakan penerbitan CA.
Karena itu, browser dapat memeriksa informasi status sertifikat melalui mekanisme pencabutan.
Dua mekanisme yang dikenal luas adalah:
Certificate Revocation List (CRL)
CRL merupakan daftar sertifikat yang telah dicabut oleh CA. Sistem yang memeriksa sertifikat dapat menggunakan daftar tersebut untuk mengetahui apakah sertifikat masih berlaku atau telah dicabut.
Online Certificate Status Protocol (OCSP)
OCSP memungkinkan klien meminta informasi status sertifikat kepada layanan OCSP yang disediakan CA.
Ada juga mekanisme OCSP Stapling, yaitu server menyertakan respons OCSP yang telah ditandatangani CA ketika melakukan proses handshake TLS. Dengan cara ini, browser dapat memperoleh informasi status tanpa harus selalu menghubungi server OCSP secara langsung.
Perlu diketahui bahwa pemeriksaan pencabutan tidak selalu berlangsung dengan cara yang sama pada setiap browser. Implementasi dapat menggunakan kombinasi OCSP, CRL, daftar pencabutan yang didistribusikan browser, atau mekanisme lain.
Karena itu, jangan menganggap semua browser selalu melakukan permintaan OCSP langsung setiap kali membuka website.
7. Browser Memeriksa Certificate Transparency
Selain pemeriksaan sertifikat secara kriptografis, beberapa browser juga menerapkan kebijakan Certificate Transparency (CT).
Certificate Transparency merupakan sistem pencatatan sertifikat TLS publik ke dalam log yang dapat dipantau dan diverifikasi.
Tujuannya adalah meningkatkan transparansi penerbitan sertifikat sehingga sertifikat yang diterbitkan dapat diawasi oleh pemilik domain, peneliti keamanan, CA, dan penyedia browser.
Sertifikat yang memenuhi persyaratan Certificate Transparency dapat memiliki bukti pencatatan berupa Signed Certificate Timestamp (SCT).
SCT merupakan bukti bahwa sertifikat telah diterima untuk dicatat dalam log CT sesuai mekanisme yang berlaku.
Browser dapat menerapkan kebijakan CT terhadap sertifikat yang dipercaya secara publik. Persyaratannya berbeda menurut browser dan kebijakan yang berlaku.
Jika sertifikat tidak memenuhi persyaratan CT yang diwajibkan oleh browser tertentu, sertifikat dapat ditolak atau koneksi dapat dibatasi.
Dengan adanya Certificate Transparency, pengawasan terhadap penerbitan sertifikat menjadi lebih terbuka.
Apa yang Terjadi Setelah Sertifikat Berhasil Divalidasi?
Setelah pemeriksaan sertifikat berhasil, proses TLS belum sepenuhnya selesai.
Browser dan server masih perlu menyelesaikan proses handshake untuk membentuk koneksi terenkripsi.
Pada TLS 1.3, salah satu pesan penting adalah CertificateVerify.
Pesan ini berisi tanda tangan digital yang membuktikan bahwa server memiliki private key yang sesuai dengan public key pada sertifikatnya.
Browser memverifikasi tanda tangan tersebut untuk memastikan bahwa pihak yang berkomunikasi benar-benar menguasai private key yang terkait dengan sertifikat.
Setelah itu, kedua pihak menyelesaikan pemeriksaan pesan Finished untuk memastikan integritas proses handshake.
Jika seluruh proses berhasil, koneksi TLS dapat digunakan untuk melindungi komunikasi antara browser dan server.
Data yang dikirimkan melalui koneksi tersebut kemudian dilindungi menggunakan kunci sesi yang dibentuk selama proses TLS.
Jadi, sertifikat tidak secara langsung mengenkripsi seluruh komunikasi website. Sertifikat membantu autentikasi server dan proses pembentukan koneksi aman, sedangkan enkripsi data selanjutnya menggunakan mekanisme kriptografi sesi TLS.
Apa yang Terjadi Jika Sertifikat SSL Gagal Divalidasi?
Jika sertifikat tidak memenuhi persyaratan validasi, browser dapat menampilkan halaman peringatan sebelum pengunjung melanjutkan ke website.
Jenis pesan kesalahan bergantung pada browser dan penyebab masalah.
Berikut beberapa contoh yang umum ditemukan.
| Pesan Kesalahan | Kemungkinan Penyebab |
|---|---|
NET::ERR_CERT_AUTHORITY_INVALID | CA tidak dipercaya atau Certificate Chain bermasalah |
NET::ERR_CERT_COMMON_NAME_INVALID | Nama domain tidak cocok dengan sertifikat |
NET::ERR_CERT_DATE_INVALID | Sertifikat kedaluwarsa, belum berlaku, atau waktu perangkat bermasalah |
NET::ERR_CERT_REVOKED | Sertifikat diketahui telah dicabut |
SEC_ERROR_UNKNOWN_ISSUER | Penerbit atau rantai sertifikat tidak dapat dipercaya |
SEC_ERROR_EXPIRED_CERTIFICATE | Sertifikat telah melewati masa berlaku |
Pesan tersebut dapat berbeda tergantung browser, sistem operasi, dan kondisi validasi.
Peringatan sertifikat tidak sebaiknya diabaikan. Pengunjung perlu memastikan bahwa website yang diakses memang benar dan pengelola website perlu memperbaiki penyebab masalahnya.
Mengapa Website Bisa Mengalami Error Sertifikat SSL?
Ada beberapa kondisi yang dapat menyebabkan browser gagal memvalidasi sertifikat.
1. Sertifikat Kedaluwarsa
Sertifikat telah melewati tanggal akhir masa berlaku dan belum diperbarui.
Solusi: Perbarui atau terbitkan ulang sertifikat melalui CA atau penyedia SSL.
2. Nama Domain Tidak Sesuai
Sertifikat tidak mencakup domain yang sedang diakses.
Solusi: Pastikan domain utama, subdomain, dan variasi www yang digunakan telah tercakup dalam sertifikat.
3. Intermediate Certificate Tidak Lengkap
Server tidak mengirimkan intermediate certificate yang diperlukan untuk membangun jalur kepercayaan.
Solusi: Periksa dan pasang intermediate certificate sesuai chain yang diberikan CA.
4. Sertifikat Diterbitkan oleh CA yang Tidak Dipercaya
Sertifikat tidak dapat ditelusuri ke Root CA yang dipercaya oleh browser atau sistem operasi.
Solusi: Gunakan sertifikat dari CA yang dipercaya secara publik atau periksa konfigurasi trust store jika menggunakan sertifikat internal.
5. Waktu Perangkat Tidak Akurat
Jam dan tanggal perangkat pengunjung tidak sesuai dengan waktu sebenarnya.
Solusi: Aktifkan pengaturan tanggal dan waktu otomatis pada perangkat.
6. Sertifikat Telah Dicabut
CA telah mencabut sertifikat sebelum masa berlakunya berakhir.
Solusi: Hubungi penyedia sertifikat untuk mengetahui penyebab pencabutan dan lakukan penerbitan sertifikat pengganti jika diperlukan.
7. Konfigurasi Server atau CDN Bermasalah
Website menggunakan CDN, reverse proxy, atau beberapa server dengan konfigurasi sertifikat yang berbeda.
Akibatnya, sebagian pengunjung mungkin mendapatkan sertifikat yang berbeda atau tidak sesuai.
Solusi: Pastikan sertifikat pada seluruh endpoint, server, dan layanan perantara telah dikonfigurasi dengan benar.
Apakah Semua Browser Memvalidasi Sertifikat dengan Cara yang Sama?
Tidak sepenuhnya.
Semua browser modern memiliki tujuan yang sama, yaitu memastikan identitas server dan validitas sertifikat sebelum menerima koneksi HTTPS. Namun, implementasi teknis dan kebijakan kepercayaannya dapat berbeda.
Perbedaan tersebut dapat mencakup:
- Root CA yang dipercaya.
- Cara membangun Certificate Chain.
- Mekanisme pemeriksaan pencabutan.
- Kebijakan Certificate Transparency.
- Persyaratan algoritma dan ukuran kunci.
- Penanganan sertifikat yang tidak memenuhi kebijakan.
Sebagai contoh, Google Chrome memiliki Chrome Root Store dan kebijakan Certificate Transparency sendiri. Mozilla juga memiliki kebijakan Root Store untuk sertifikat yang dipercaya oleh Firefox.
Perbedaan ini menjelaskan mengapa sebuah website terkadang dapat diakses tanpa peringatan pada satu perangkat, tetapi mengalami masalah sertifikat pada perangkat lain.
Oleh sebab itu, pengujian HTTPS sebaiknya tidak hanya dilakukan pada satu browser atau satu jenis perangkat.
Bagaimana Cara Pemilik Website Memastikan Sertifikat Berhasil Divalidasi?
Pemilik website dapat melakukan beberapa pemeriksaan untuk memastikan sertifikat SSL/TLS terpasang dan disajikan dengan benar.
Berikut langkah yang disarankan:
- Periksa nama domain: Pastikan sertifikat mencakup semua domain yang digunakan website.
- Periksa masa berlaku: Pastikan sertifikat belum kedaluwarsa dan sudah berada dalam periode validitasnya.
- Periksa Certificate Chain: Pastikan intermediate certificate yang diperlukan telah terpasang.
- Periksa penerbit sertifikat: Pastikan sertifikat berasal dari CA yang sesuai dengan kebutuhan website.
- Periksa konfigurasi TLS: Pastikan server menggunakan versi protokol dan algoritma kriptografi yang didukung secara aman.
- Periksa status sertifikat: Pastikan tidak ada informasi pencabutan yang relevan terhadap sertifikat.
- Uji pada beberapa browser: Periksa website menggunakan browser dan perangkat yang berbeda.
- Pantau masa berlaku: Gunakan sistem pengingat atau otomatisasi agar pembaruan sertifikat tidak terlewat.
Pemeriksaan tersebut membantu mengurangi risiko gangguan HTTPS dan masalah kompatibilitas pada website.
Kesimpulan
Browser tidak langsung mempercayai sertifikat SSL/TLS yang diberikan server. Sebelum melanjutkan koneksi HTTPS, browser melakukan serangkaian pemeriksaan untuk memastikan sertifikat sesuai dengan domain, masih berlaku, memiliki tanda tangan digital yang valid, serta dapat ditelusuri melalui Certificate Chain menuju Root CA yang dipercaya.
Browser juga dapat memeriksa penggunaan kunci, algoritma kriptografi, status pencabutan, dan persyaratan Certificate Transparency sesuai kebijakannya.
Jika sertifikat gagal memenuhi persyaratan, browser dapat menampilkan peringatan atau menolak koneksi HTTPS.
Bagi pemilik website, memahami proses validasi ini penting untuk memastikan sertifikat terpasang dengan benar, Certificate Chain lengkap, dan koneksi HTTPS dapat digunakan secara konsisten.
Ingat, keberhasilan validasi sertifikat membantu memastikan identitas server dan membangun koneksi terenkripsi. Namun, hal tersebut tidak otomatis menjamin website bebas dari phishing, malware, atau kerentanan aplikasi. Keamanan website tetap membutuhkan perlindungan tambahan secara menyeluruh.
FAQ (Pertanyaan yang Sering Diajukan)
1. Apa yang diperiksa browser saat memvalidasi sertifikat SSL?
Browser memeriksa nama domain, masa berlaku, tanda tangan digital, Certificate Chain, penggunaan kunci, algoritma kriptografi, serta status pencabutan dan persyaratan tambahan sesuai kebijakan browser.
2. Apakah browser memvalidasi sertifikat sebelum website dibuka?
Ya. Validasi sertifikat merupakan bagian dari proses TLS Handshake. Browser memeriksa sertifikat sebelum koneksi HTTPS dapat diselesaikan dan digunakan untuk pertukaran data aplikasi.
3. Mengapa browser menampilkan peringatan Your Connection Is Not Private?
Peringatan tersebut dapat muncul ketika browser menemukan masalah pada sertifikat, seperti nama domain tidak cocok, sertifikat kedaluwarsa, CA tidak dipercaya, atau Certificate Chain tidak valid.
4. Apakah sertifikat SSL dari CA tepercaya pasti diterima browser?
Tidak selalu. Sertifikat dari CA tepercaya tetap harus memenuhi persyaratan validasi lainnya, termasuk kesesuaian domain, masa berlaku, tanda tangan digital, penggunaan kunci, dan kebijakan keamanan browser.
5. Apa hubungan Root CA dan Intermediate CA dengan validasi SSL?
Root CA menjadi titik awal kepercayaan, sedangkan Intermediate CA menghubungkan sertifikat website dengan Root CA. Browser memeriksa hubungan dan tanda tangan digital dalam Certificate Chain untuk memastikan jalur sertifikat dapat dipercaya.
6. Apakah browser selalu memeriksa OCSP setiap kali membuka website?
Tidak. Mekanisme pemeriksaan pencabutan berbeda-beda antar-browser. Ada yang menggunakan OCSP, OCSP Stapling, CRL, daftar pencabutan yang didistribusikan browser, atau mekanisme lainnya.
7. Apakah sertifikat SSL yang valid menjamin website aman?
Tidak. Sertifikat membantu mengautentikasi server dan melindungi komunikasi melalui enkripsi TLS. Sertifikat tidak menjamin website bebas dari malware, phishing, pencurian akun, atau kerentanan aplikasi.
8. Bagaimana cara mengetahui sertifikat SSL website valid atau tidak?
Pengunjung dapat memeriksa informasi sertifikat melalui browser. Pemilik website juga dapat menggunakan SSL Checker atau OpenSSL untuk memeriksa nama domain, masa berlaku, penerbit, dan kelengkapan Certificate Chain.
Butuh bantuan memilih SSL untuk website Anda?
Kunjungi sslkita.com atau hubungi tim SSLKita melalui email sales@sslkita.com untuk mendiskusikan kebutuhan sertifikat SSL Anda.
Referensi
- RFC 8446 – The Transport Layer Security (TLS) Protocol Version 1.3 — standar proses handshake TLS dan autentikasi sertifikat.
- RFC 9525 – Service Identity in TLS — standar pemeriksaan identitas layanan dan nama domain.
- Chromium – Chrome Certificate Verifier FAQ — kriteria validasi sertifikat yang digunakan Chrome.
- MDN – Certificate Transparency — penjelasan SCT dan kebijakan Certificate Transparency.
- Chromium – Certificate Revocation FAQ — penjelasan mekanisme pemeriksaan pencabutan sertifikat di Chrome.