Sijil VPN belum sah: tiga punca, satu urutan semakan
Belum sah bermaksud jam peranti ketinggalan, tetingkap benar-benar bermula lebih lewat, atau sijil perantaraan belum dibuka. Semak mengikut urutan itu.
Anda membuka klien, memilih profil yang telah digunakan berbulan-bulan, dan ia berhenti dengan "certificate is not yet valid". Tiada apa-apa pada log masuk anda berubah, dan stor kepercayaan mungkin baik-baik saja: sijil yang dikemukakan dalam jabat tangan membawa tetingkap kesahan yang bermula lebih lewat daripada saat yang digunakan oleh pengesah. Tiga situasi berbeza menghasilkan mesej yang sama tepat itu, dan masing-masing memerlukan tindakan berbeza. Urutan di bawah memberitahu anda yang mana satu anda hadapi sebelum menyentuh jam atau fail sijil.
Punca mana antara tiga itu yang anda lihat
Punca pertama adalah setempat: peranti yang melakukan semakan memegang jam yang lebih awal daripada tarikh mula sijil. Anda melihatnya pada perkakasan dengan bateri CMOS mati, pada mesin maya yang dipulihkan daripada petikan lama, pada perkakas yang cukup lama dimatikan sehingga kehilangan masa, dan pada rangkaian yang NTP keluar disekat dan tiada siapa menyedarinya. Sijil boleh sah sepenuhnya dan tetap gagal dengan cara ini.
Punca kedua milik pengeluar, kerana sijil benar-benar bermula pada masa hadapan: dikeluarkan lebih awal, dijana dengan masa mula eksplisit, atau ditandatangani sebagai sebahagian daripada langkah pengaktifan yang belum dijalankan. Punca ketiga paling banyak membuang masa, kerana daun itu semasa manakala sijil lain dalam rantaian yang dikemukakan tidak, jadi ralat menamakan bahan yang tidak pernah anda pasang.
Satu soalan memisahkan ketiganya. Adakah kegagalan mengikut peranti atau perkhidmatan? Dua mesin pada rangkaian yang sama yang berkelakuan berbeza menunjuk kepada jam. Setiap klien gagal dengan cara yang sama menunjuk kepada tetingkap sijil dan rantaian di belakangnya.
Baca tetingkap daripada sijil yang benar-benar dikemukakan
Jangan periksa fail PEM yang tertinggal daripada penggunaan terdahulu; minta perkhidmatan itu memberikan rantaian yang dihantarnya sekarang. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts mencetak setiap sijil dalam rantaian. Simpan blok yang anda perlukan dan jalankan openssl x509 -noout -subject -issuer -dates; yang terakhir mencetak notBefore dan notAfter, dan kedua-dua nilai itulah yang menentukan. Pada Windows, dialog sijil untuk sambungan dan certutil -dump pada fail yang dieksport menunjukkan medan yang sama.
Baca kedua-dua hujung tetingkap, bukan permulaannya sahaja. Sijil yang terbuka dalam dua jam dan yang menutup dalam dua jam gagal dengan mesej berbeza dan melibatkan pasukan berbeza. Catat sijil mana yang dinamakan oleh ralat — daun, perantaraan atau akar — kerana itu menentukan sama ada apa-apa di sebelah klien boleh dibaiki sama sekali.
Anda juga boleh menguji tetingkap tanpa menunggunya. Pengesahan menerima masa eksplisit: openssl verify -attime 1793600000 -CAfile ca.pem -untrusted intermediate.pem leaf.pem menilai rantaian pada cap masa itu. Jalankan dengan masa semasa untuk menghasilkan semula kegagalan, kemudian dengan masa mula sijil untuk mengesahkan rantaian yang sama lulus apabila tetingkap dibuka. RFC 5280 mentakrifkan medan kesahan dan peraturan bahawa sijil tidak boleh digunakan di luarnya, dan itulah peraturan yang baru dikuatkuasakan oleh klien anda.
Jam anda, atau jam mereka
Bandingkan jam peranti dengan permulaan sijil dalam UTC, daripada sumber yang anda percayai. date -u memberikan saat itu, dan timedatectl status pada hos systemd juga melaporkan sama ada jam disegerakkan. Pada Windows, w32tm /query /status menunjukkan sumber semasa dan penyegerakan terakhir yang berjaya. Zon waktu yang dipaparkan dalam dulang ialah pilihan paparan, bukan jam yang salah; pengesah membandingkan saat UTC.
| What you see | Most likely reading | Next step |
|---|---|---|
| Clock behind, one device affected | Local time fault | Resync time, keep validation on, retest |
| Clock correct, window opens soon | Certificate staged early | Wait for the window or follow the cutover plan |
| Clock correct, intermediate not yet valid | Chain material mismatch | Operator replaces the intermediate |
| Some peers pass, others do not | Inconsistent nodes | Record each peer's chain before changing anything |
Jika jam ketinggalan, segerakkan semula dan uji semula sebelum menukar sebarang bahan sijil. Peranti yang tersasar beberapa minit atau jam menolak setiap sijil yang baru dikeluarkan yang ditemuinya, bukan hanya satu perkhidmatan, jadi penjelasan satu perkhidmatan biasanya yang salah. Jika jam betul dan disegerakkan, berhenti melihat peranti: tetingkap itu milik pengeluar, dan tiada tetapan setempat boleh dilaraskan untuk meluluskannya.
Jadual itu ialah keseluruhan keputusan. Mengalihkan jam kepada apa yang dijangkakan oleh sijil bukan pembaikan, dan mematikan semakan masa juga bukan, kerana kedua-duanya menyembunyikan keadaan yang menghasilkan ralat.
Mengapa rantaian gagal sedangkan daun kelihatan baik
Daun yang diperbaharui dan perantaraan pengganti biasanya dihantar bersama, dan ia tidak selalu tiba pada saat yang sama. Perkhidmatan boleh menghantar daun baharu yang ditandatangani oleh perantaraan yang tetingkapnya sendiri bermula lebih lewat, atau terus menyajikan perantaraan lama di bawah daun baharu. Sama ada cara, rantaian gagal sedangkan tarikh daun itu sendiri kelihatan munasabah.
Titik akhir berimbang beban mengubah ini daripada rosak kepada tidak konsisten. Jika percubaan semula berjaya, atau satu rangkaian berfungsi manakala yang lain tidak, catat rakan mana yang menjawab dan rantaian mana yang dihantarnya sebelum menukar tetapan. openssl s_client mencetak alamat yang disambungkan, jadi beberapa percubaan mendedahkan sama ada setiap nod menyajikan rantaian yang sama.
Laluan pembaikan yang mengekalkan pengesahan
Masalah jam dibaiki pada peranti dengan pengesahan dibiarkan aktif. Masalah sijil dibaiki oleh pengendali dengan bahan yang dikeluarkan untuk tetingkap yang sudah merangkumi sekarang. Tiada tetapan klien menjadikan sijil belum-sah menjadi sah; bendera yang melangkau semakan masa wujud supaya anda mengesahkan diagnosis, bukan supaya anda mengerahkannya ke pengeluaran.
Apabila sijil disediakan untuk pengaktifan terancang, ikut pelan peralihan. Pasang apabila tetingkapnya dibuka, atau gunakan prosedur pertindihan yang didokumenkan oleh pembekal, daripada memasang lebih awal dan mengajar pengguna mengklik melalui amaran. Amaran yang dipelajari orang untuk diabaikan lebih mahal daripada kelewatan singkat.
Akhir sekali, uji semula seperti kegagalan berlaku: sesi baharu, klien yang sama, sumber yang benar-benar anda perlukan. Pustaka TLS boleh menyimpan rantaian yang disahkan sepanjang hayat sambungan, dan sesi yang disambung semula tidak semestinya menyemaknya semula, jadi sesi lama boleh terus gagal selepas pembaikan atau terus berfungsi selepas regresi. Fail yang terbuka dalam pemapar hanya membuktikan fail itu boleh dibaca; jabat tangan yang selesai membuktikan rantaian disahkan.
Sebelum menutup tiket, sahkan empat perkara: masa UTC dan keadaan penyegerakan peranti yang gagal, notBefore dan notAfter setiap sijil dalam rantaian yang dikemukakan, rantaian yang sama daripada klien kedua, dan nama yang diberikan ralat kepada sijil itu. Jika jam betul dan tetingkap belum dibuka, selebihnya ialah kerja pengendali, dan langkah yang betul di pihak anda ialah menunggu tetingkap daripada melemahkan semakan.