ERR_SSL_PROTOCOL_ERROR muncul ketika browser dan server tidak berhasil menyepakati koneksi terenkripsi. Ini terjadi pada tahap handshake, sebelum konten apa pun dikirim — jadi halamannya bukan dimuat sebagian atau lambat, melainkan tidak pernah dimulai sama sekali.
Yang paling penting adalah mengetahui sisi mana penyebabnya, karena keduanya membutuhkan penanganan yang sepenuhnya berbeda. Kalau hanya Anda yang mengalaminya, hampir selalu jam sistem, antivirus yang mencegat TLS, atau cache browser Anda sendiri. Kalau semua orang mengalaminya, penyebabnya sertifikat, konfigurasi, atau versi protokol di server.
Pertama: masalahnya di Anda atau di server
Tiga pengujian ini memakan waktu kurang dari dua menit dan mencoret separuh daftar penyebab.
- Buka situs lewat data seluler di ponsel dengan Wi-Fi dimatikan. Kalau bisa, penyebabnya jaringan atau komputer Anda, bukan server.
- Coba browser lain. Hanya Chrome yang error sementara Firefox normal biasanya berarti cache TLS Chrome atau sebuah ekstensi.
- Gunakan alat pemeriksa SSL online yang berjalan dari server eksternal. Kalau alat itu juga melaporkan error, masalahnya di server dan Anda bisa melewati seluruh pengecekan sisi klien.
Melihat kejadian sebenarnya dengan openssl
Browser menyembunyikan hampir semua detail. Satu perintah menunjukkan persis apa yang dikirim server dan di mana handshake-nya gagal.
Jalankan: openssl s_client -connect situsanda.com:443 -servername situsanda.com. Tiga baris pertama hasilnya sudah memberi tahu hampir semua yang perlu Anda ketahui.
| Hasil yang Anda lihat | Artinya |
|---|---|
| Verify return code: 0 (ok) | Sertifikat valid — masalahnya di sisi klien |
| unable to get local issuer certificate | Sertifikat perantara hilang dari rantai |
| certificate has expired | Sertifikat kedaluwarsa — cukup perpanjang |
| Hostname mismatch | Sertifikat diterbitkan untuk domain lain |
| no protocols available / handshake failure | Browser dan server tak punya versi TLS yang sama |
Penyebab di sisi server, dari yang paling sering
- Sertifikat sudah kedaluwarsa. Biasanya terjadi karena tugas perpanjangan otomatis Let's Encrypt gagal diam-diam berbulan-bulan sebelumnya tanpa ada yang menyadari.
- Sertifikat perantara tidak dipasang. Sertifikat Anda benar tapi bagian rantainya terlewat, dan hanya sebagian perangkat yang melaporkan error.
- Sertifikat tidak cocok dengan domain. Diterbitkan untuk "situsanda.com" tapi pengunjung membuka "www.situsanda.com", atau sebaliknya.
- Server hanya mendukung TLS 1.2 ke atas sementara ada klien lama, atau sebaliknya: server terlalu tua dan hanya bisa TLS 1.0 yang sudah ditolak browser modern.
- Konfigurasi SNI salah di server dengan banyak domain. Server mengembalikan sertifikat default alih-alih sertifikat domain yang diminta.
- Cloudflare diset ke mode Full sementara server asal tidak punya sertifikat valid, atau mode SSL-nya tidak sesuai kenyataan di server.
- Nginx mendengarkan port 443 tapi kehilangan direktif "ssl" atau menunjuk path file sertifikat yang salah. Error ini selalu muncul tepat setelah penyuntingan konfigurasi.
Penyebab di sisi klien, dari yang paling sering
- Tanggal dan jam sistem salah. Sertifikat punya rentang berlaku; jam yang meleset membuat sertifikat yang sepenuhnya valid dianggap tidak sah.
- Antivirus atau penyaring web yang mencegat HTTPS. Banyak produk menyisipkan sertifikatnya sendiri di tengah dan merusak handshake bila konfigurasinya tidak sempurna.
- Cache TLS browser menyimpan status yang rusak. Di Chrome, menghapus data penjelajahan biasanya menyelesaikannya.
- Jaringan kantor atau sekolah yang memfilter TLS. Perangkat inspeksi trafik organisasi adalah penyebab yang sangat umum ketika error hanya terjadi di satu lokasi.
- Browser atau sistem operasi terlalu tua. Perangkat yang tidak diperbarui bertahun-tahun tidak mendukung cipher yang diminta server modern.
- Ekstensi VPN atau proxy. Coba matikan semua ekstensi, atau gunakan jendela penyamaran dengan ekstensi dinonaktifkan.
Memperbaikinya agar tidak terulang
Sebagian besar insiden SSL di server adalah masalah proses, bukan masalah konfigurasi, dan di situlah tenaga sebaiknya diinvestasikan.
Pastikan perpanjangan otomatis benar-benar berjalan, jangan hanya percaya bahwa ia berjalan. Dengan certbot, "certbot renew --dry-run" memberi tahu apakah perpanjangan sungguhan akan berhasil atau gagal. Banyak situs tumbang karena sertifikat semata-mata karena tugas ini sudah lama rusak tanpa pernah diperiksa.
Pasang peringatan kedaluwarsa di tempat yang benar-benar Anda lihat. Tiga puluh hari sebelum jatuh tempo adalah jarak yang wajar untuk menanganinya tanpa terburu-buru.
Selalu pasang rantai sertifikat lengkap. Penyedia memberikan sertifikat Anda beserta bagian perantaranya; memasangnya setengah menghasilkan error yang hanya muncul di sebagian perangkat dan sangat sulit didiagnosis.
Setelah setiap perubahan konfigurasi SSL, uji dengan openssl dari mesin lain, bukan sekadar membuka browser di komputer Anda. Browser Anda menyimpan terlalu banyak hal untuk memberi hasil yang jujur.
Ingin mengelola sendiri sertifikat dan konfigurasi TLS Anda?
Cloud VPS dengan akses root penuh — pasang Let's Encrypt, atur perpanjangan otomatis, dan sesuaikan TLS. Mulai ฿150/bulan.
Pertanyaan yang Sering Diajukan
Sertifikat saya masih berlaku tapi tetap error. Kenapa?
Penyebab tersering adalah sertifikat perantara yang hilang. Sertifikat Anda valid tapi browser tidak bisa menghubungkannya ke otoritas root tepercaya. Jalankan "openssl s_client -connect domain.com:443"; kalau muncul "unable to get local issuer certificate", itulah masalahnya.
Kenapa situs terbuka di desktop tapi error di ponsel?
Hampir selalu rantai sertifikat yang tidak lengkap. Browser desktop biasanya mengunduh sendiri perantara yang hilang, sedangkan perangkat seluler dan aplikasi tidak. Situsnya tidak rusak "hanya di ponsel" — rantainya kurang di mana-mana, hanya saja desktop menyembunyikannya.
Bolehkah mengabaikan peringatan dan tetap melanjutkan?
Tidak, kecuali itu server Anda sendiri dan Anda tahu persis penyebab peringatannya. Peringatan SSL juga persis yang muncul saat ada pihak yang menyadap koneksi, jadi membiasakan diri menekan "lanjutkan" berarti mematikan perlindungan itu sendiri.
Bagaimana error SSL memengaruhi peringkat pencarian?
Langsung dan cepat. Googlebot tidak bisa menyelesaikan handshake sehingga tidak mendapat konten, dan halaman yang tidak bisa di-crawl tidak bertahan di indeks. HTTPS juga merupakan sinyal peringkat, jadi sertifikat yang rusak memblokir crawl sekaligus menghilangkan sinyal itu bersamaan.
GUIDES
Artikel terkait
Lanjut membaca topik serupa
ERR_TOO_MANY_REDIRECTS — Penyebab dan Cara Mengatasinya
Error ini hampir selalu berarti dua komponen mengurus hal yang sama ke arah berlawanan. Satu perintah curl sudah cukup untuk melihat seluruh loop dan tahu persis konfigurasi mana yang bertengkar.
Baca selengkapnyaERR_CONNECTION_TIMED_OUT — Penyebab dan Cara Mengatasinya
Halaman memuat lama lalu Chrome menyerah dengan pesan ERR_CONNECTION_TIMED_OUT. Panduan ini menunjukkan cara memastikan dalam dua menit apakah masalahnya ada di sisi Anda atau di server, lalu langkah perbaikan untuk masing-masing sisi.
Baca selengkapnya502 Bad Gateway — Arti dan Cara Mengatasinya
502 berarti satu server meminta halaman ke server lain dan menerima jawaban yang tidak bisa dipakai. Panduan ini menjelaskan dua mesin mana yang terlibat, beda 502 dengan 500 dan 504, serta urutan pemeriksaan supaya Anda menemukan penyebab aslinya lebih dulu.
Baca selengkapnya