Apa yang klien VPN anda semak sebelum mempercayai sijil
Lalui amaran sijil melalui empat pintu yang klien anda semak: kepercayaan CA, pembinaan rantai, nama dan tujuan rakan, serta dasar pembatalan.
Klien VPN anda berkata sijil tidak dapat disahkan, dan dialog berhenti di situ. Fail ada, pelayan berjalan, dan profil yang sama berfungsi pada komputer riba lain bulan lalu. Di bawah amaran satu baris itu klien membawa sijil rakan melalui empat pintu: pihak berkuasa sijil yang anda konfigurasikan menjamin laluan tandatangan, laluan itu sampai kepada pihak berkuasa, nama rakan ialah yang anda minta, dan sijil boleh digunakan sekarang untuk tujuan ini. Cari pintu yang tertutup dan pembaikan biasanya satu fail; langkau langkah itu dan anda akan mengimport semula berkas sepanjang petang.
Baca dialog sebelum mengedit profil
Mesej ralat sijil dirumuskan oleh pustaka di bawahnya, bukan oleh produk VPN yang anda pasang, jadi rentetan tepat itu ialah bukti pertama anda. «Tidak dapat memperoleh sijil pengeluar tempatan» menunjuk laluan atau sauh kepercayaan. «Sijil telah tamat tempoh atau belum sah» menunjuk masa. «Tujuan sijil tidak disokong» menunjuk penggunaan kunci lanjutan. Ketidakpadanan nama memberitahu nama mana yang dikehendaki. Tiada satu pun daripada empat itu dibaiki dengan memasang semula klien.
Tingkatkan tahap log sebelum mengubah apa-apa. OpenVPN melaporkan kegagalan pengesahan sekitar jabat tangan apabila anda menjalankannya dengan --verb 4, dan strongSwan mencatat keputusan identiti dan rantaiannya ke log charon. Kemudian pastikan sijil mana yang anda periksa, kerana orang biasa menguji fail di cakera sementara profil menyematkan salinan lebih lama. Apabila profil menyematkan blok PEM, sijil yang disematkan itulah yang diuji.
Pihak berkuasa sijil menandatangani identiti, bukan kebenaran
Pihak berkuasa memegang nama dan kunci tandatangan. Ia mengeluarkan sijil yang mengikat kunci awam kepada nama itu mengikut dasarnya sendiri, dengan tetingkap kesahan dan kekangan penggunaan dilampirkan. Klien anda hanya memerlukan sijil pihak berkuasa untuk mengenali pengeluar; ia tidak pernah memerlukan kunci tandatangan, dan menghantar kunci itu kepada klien akan memberi mereka keupayaan mencipta mana-mana identiti yang dipercayai oleh penggunaan.
Mempercayai pihak berkuasa menjadikan setiap sijil yang ditandatanganinya calon, bukan rakan yang betul. Sijil pelayan web daripada CA dalaman yang sama juga calon. Itulah sebabnya pintu nama dan tujuan wujud, dan sebabnya kunci CA yang terjejas lebih penting daripada mana-mana pelayan tunggal: ia sampai kepada setiap identiti yang pernah dikeluarkan oleh pihak berkuasa. Keluarkan sijil klien bagi setiap peranti, supaya komputer riba yang hilang menjadi satu pembatalan dan bukan penjanaan semula kunci untuk seluruh penggunaan.
Bina semula laluan yang klien cuba bina
Laluan bermula dari sijil rakan, melalui sifar atau lebih sijil perantaraan, ke akar dalam stor kepercayaan anda. Sijil perantaraan yang hilang ialah kegagalan rantaian paling biasa, dan dari sisi klien ia kelihatan sama seperti akar yang tidak dipercayai. Baca daun dahulu, kemudian biarkan OpenSSL membina laluan daripada bahan yang anda mahu hantar.
openssl x509 -in server.crt -noout -subject -issuer -dates
openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt
openssl verify -show_chain -CAfile root.crt -untrusted intermediate.crt server.crt
Status keluar sifar bermakna laluan dibina daripada fail-fail itu; kegagalan menamakan sijil yang tidak dapat dicapai. Jika openssl verify berjaya sementara klien masih menolak, perbezaannya terletak pada apa yang sebenarnya dihantar pelayan atau fail kepercayaan mana yang dimuatkan profil. Dalam OpenVPN sijil perantaraan boleh ikut bersama fail sijil pelayan atau diberikan berasingan dengan --extra-certs, dan berkas yang memegang dua akar di bawah nama subjek yang sama akan menghantar salah satu klien anda ke cabang yang salah.
Nama dan tujuan ialah pintu berasingan
Pembinaan rantaian tidak pernah bertanya sama ada nama itu milik anda. OpenVPN menyemaknya hanya apabila profil menetapkan --verify-x509-name, dan tabiat lama memadankan hanya nama umum rosak pada sijil yang identitinya hidup dalam subjectAltName. Penggunaan IKEv2 memadankan identiti yang dikonfigurasikan dengan entri SAN atau dengan nama ketara, bergantung pada klien, dan nilai wildcard atau %any mematikan perbandingan yang anda sangkakan ada secara senyap.
Seterusnya masa dan tujuan. Komputer riba yang jamnya beberapa jam lebih cepat menolak sijil yang belum sah, dan sijil perantaraan yang tamat tempoh menggagalkan laluan sedangkan daun masih sah. Kegagalan tujuan datang daripada sijil tanpa serverAuth dalam penggunaan kunci lanjutan, atau dengan keyUsage yang tidak membenarkan tandatangan jabat tangan, yang dilaporkan OpenSSL sebagai tujuan sijil tidak disokong. Keluarkan semula daripada templat yang betul; tiada apa dalam mesej itu yang menjadi alasan mematikan pengesahan.
Pembatalan hanya berjalan jika seseorang mengkonfigurasikannya
CRL atau respons OCSP tidak dirujuk secara automatik. Pada pelayan OpenVPN, sijil klien dibandingkan dengan senarai hanya apabila --crl-verify menunjuk kepadanya. Pemeriksaan sijil pelayan di sisi klien bergantung pada pelaksanaan dan selalunya tiada. strongSwan memerlukan pemalam pembatalan dan dasar sebelum melihat CRL untuk rakan.
Itu menjelaskan tiket yang akhirnya anda terima: sijil klien yang dibatalkan masih bersambung, dan semua orang membuat kesimpulan bahawa pembatalan rosak. Tiada apa yang menyemak. Terbitkan dan segarkan CRL, atau kekalkan sijil klien cukup singkat hayat supaya pembatalan lapuk hanya penting sebentar, dan latih laluan pembatalan pada sijil makmal sebelum anda memerlukannya semasa insiden.
Urutan pembaikan yang mengekalkan pengesahan hidup
Isih mengikut simptom sebelum menyentuh fail, kerana setiap baris jadual menghantar anda ke objek yang berbeza.
| Client says | Most likely gate | First check |
|---|---|---|
| unable to get local issuer certificate | trust anchor or missing intermediate | your own openssl verify against the files the profile loads |
| expired or not yet valid | validity window | leaf and intermediate dates against the device clock |
| unsupported certificate purpose | extended key usage | serverAuth present, keyUsage allows the handshake |
| name mismatch | peer identity | subjectAltName entries versus the profile name |
Lalui senarai dalam satu pusingan: sahkan fail yang dimuatkan profil, bina laluan itu sendiri, semak sama ada pelayan menghantar sijil perantaraan, bandingkan jam, baca SAN, baca EKU, kemudian sambung semula dan tonton baris log yang sama hilang. Jika peranti tidak boleh diberi CA langsung, penyematan ialah alternatif yang jujur, kerana OpenVPN 2.6 menerima --peer-fingerprint dan menyempitkan kepercayaan kepada satu kunci dan bukan menghapuskan pemeriksaan. RFC 5280 ialah rujukan bagi maksud setiap medan itu.