Pencabutan tidak pernah masuk ke terowongan yang berjalan untuk menghapus sesi. Daftar adalah masukan bagi verifikasi sertifikat dan dibaca selama pertukaran kanal kendali yang memulai sesi TLS. Satu fakta itu menjelaskan kedua kejutan: klien yang dicabut terhubung lagi karena daftar itu tidak pernah sampai ke pemverifikasi, dan sesi yang sudah ada tetap hidup karena tidak ada yang memverifikasi ulang apa pun.

Daftar adalah masukan, bukan tindakan

Saat sesi dibentuk, server memvalidasi sertifikat klien terhadap jangkar kepercayaannya, dan direktif pencabutan menambahkan pencarian daftar pada keputusan itu. Pemeriksaan terjadi di server, jadi klien tidak dapat melihat sertifikatnya telah dicabut dan terus menawarkan sertifikat yang sama. Profil yang masih terhubung karena itu hanya membuktikan bahwa suatu pemverifikasi menerima rantainya, bukan bahwa pencabutan gagal.

Daftar itu sendiri adalah objek bertanda tangan dengan tanggal terbit dan tanggal pembaruan berikutnya. Daftar yang tidak terkait, yang ditandatangani otoritas lain, atau yang tanggal pembaruan berikutnya sudah lewat bukan pengganti daftar saat ini, dan apakah daftar basi ditolak atau diterima diam-diam bergantung pada penerapan.

Koneksi baru versus sesi berjalan

Pencabutan dievaluasi saat sesi dibentuk atau dinegosiasikan ulang, bukan terhadap kanal data pada setiap paket. Klien yang sudah terhubung memegang kunci lalu lintas, jadi ia terus meloloskan paket setelah sertifikatnya muncul di daftar. Interval negosiasi ulang bawaan diukur dalam jam, karena itu daftar yang diperbarui dapat berlaku bagi pendatang baru sementara terowongan yang berjalan tetap bertahan.

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

Penegakan segera memerlukan tindakan yang disengaja, bukan hanya daftarnya. Memulai ulang layanan memaksa setiap klien terhubung lagi, sedangkan mengakhiri satu sesi melalui antarmuka manajemen membiarkan yang lain tidak tersentuh. Pilih satu per insiden dan catat mana yang Anda pakai. Kedua opsi punya jangkauan berbeda, dan itulah keputusan sebenarnya.

Antarkan berkas yang benar-benar dibaca pemverifikasi

Daftar harus dibuat dari catatan otoritas lalu disalin ke setiap mesin yang memverifikasi sertifikat. Membuatnya di host CA dan tidak pernah memasangnya di server adalah kegagalan paling umum, dan tampilannya persis seperti fitur pencabutan yang rusak.

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

Dua detail menentukan apakah berkas benar-benar dibaca. Jalur relatif diselesaikan terhadap direktori konfigurasi, jadi salinan yang tertinggal di direktori rumah operator mungkin tidak pernah ditemukan. Dan daemon biasanya melepaskan hak istimewa setelah mulai, jadi akun runtime memerlukan izin pencarian pada setiap direktori induk serta izin baca pada berkas. Periksa keduanya dengan akun runtime, bukan dengan root, atau uji itu membuktikan hal yang salah.

Pada host systemd unit yang diperketat juga dapat menyembunyikan jalur, dengan tampilan hanya-baca atau direktori sistem yang dilindungi. Dari dalam layanan itu tidak dapat dibedakan dari berkas yang hilang, jadi periksa batasan unit sebelum mencari kesalahan izin. Baca berkas unit sebelum menyalahkan mode berkas.

Pastikan di server, bukan di klien

Log server menyebutkan apa yang terjadi: membuka daftar, memuatnya, atau gagal verifikasi dengan nomor seri yang dicabut. Klien hanya melaporkan kegagalan jabat tangan umum, karena itu log klien tempat yang buruk untuk mencari keputusan pencabutan.

Verifikasi dengan percobaan baru dari profil yang dicabut lalu berhenti. Koneksi berhasil dari profil itu adalah sinyal untuk memeriksa jalur berkas dan akun runtime, bukan untuk menganggap daftarnya salah. Simpan percobaan berhasil itu sebagai uji penerimaan, dan jangan hitung sambungan ulang yang tidak Anda amati.

Apa yang tidak mencabut apa pun

Menghapus profil dari laptop, membuang berkas sertifikat dari klien, atau menyuruh pengguna berhenti terhubung tidak mengubah apa pun di server. Sertifikat tetap sah sampai otoritas mencatat pencabutan dan pemverifikasi membaca daftar yang dihasilkan.

Karena itu rantainya layak dituliskan: catat pencabutan, buat dan tanda tangani daftar, sebarkan berkas itu persis, dan pastikan akun layanan dapat membacanya. Setiap mata rantai singkat, dan yang mana pun hilang membuat klien yang dicabut tetap terhubung dengan riang. Daftar periksa empat baris mengalahkan asumsi tanpa satu baris pun.

Artikel terkait