Nama fail ca.crt sama, sijil berbeza: apa yang hendak dibandingkan
Dua profil boleh membawa ca.crt dengan kandungan berbeza. Ambil cap jari apa yang dimuatkan oleh proses, kemudian semak sama ada ia punca kepercayaan yang anda maksudkan.
Dua profil kedua-duanya membawa fail bernama ca.crt, satu terowong naik dan satu lagi gagal dengan ralat rantai. Membuka kedua-dua fail bersebelahan jarang menyelesaikannya, dan mematikan pengesahan menyelesaikannya ke arah yang salah. Soalan yang sebenarnya ditanya oleh ralat itu lebih sempit: sijil mana yang dimuatkan oleh setiap proses sebagai punca kepercayaannya, dan adakah kedua-duanya objek yang sama? Jawab itu dahulu dan sebahagian lagi diagnosis mendapat arah. Nama fail ialah label pembungkusan, dan laluan yang ditulis dalam profil juga tidak berwibawa, jadi semuanya bergantung pada apa yang benar-benar dibaca oleh proses.
Cari sijil yang benar-benar dimuatkan oleh klien
OpenVPN menerima pihak berkuasa dalam dua bentuk, dan bentuk itu menentukan bait mana yang penting. Profil boleh menunjuk kepada fail luaran dengan ca, atau membenamkan sijil di dalam blok <ca> dalam profil itu sendiri. Apabila kedua-duanya wujud, blok yang dibenamkan menang dan fail di sebelah profil tidak pernah dibuka.
Baca profil yang gagal dan ketahui bentuk mana yang digunakannya sebelum membandingkan apa-apa. Salinan yang diambil dari direktori jiran, atau dari pakej asal profil yang satu lagi, tidak memberitahu anda apa-apa tentang apa yang dipercayai oleh proses ini. Perkara yang sama berlaku untuk laluan dalam konfigurasi: ia diselesaikan secara relatif kepada tempat klien dimulakan, yang bukan selalu direktori yang anda lihat. Baca profil itu, bukan folder itu.
Sijil dikenal pasti melalui kandungannya: kunci awam, subjek dan pengeluar, tetingkap kesahan, dan tandatangan atas semua itu. Dua fail dengan bait yang sama ialah sijil yang sama walau apa pun namanya, dan dua fail dengan nama yang sama boleh menjadi pihak berkuasa yang tidak berkaitan. Nama ialah label pembungkusan, bukan identiti.
Ambil cap jari kedua-dua salinan dengan openssl
Cap jari ialah cincangan atas pengekodan DER sijil, bentuk yang dilindungi oleh tandatangan, jadi penghujung baris dan teks pengepala tidak boleh mempengaruhinya. Kirakannya untuk setiap fail dan anda mempunyai dua rentetan perenambelasan yang dipisahkan titik bertindih yang sama ada sepadan atau tidak. Tiada apa-apa lagi dalam sijil perlu dibaca untuk menjawab soalan perbandingan itu.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Mengarahkan openssl ke profil itu sendiri memang mengghairahkan, tetapi ia membaca blok sijil yang muncul dahulu dalam fail, dan profil biasanya membawa <cert> sebelum <ca>. Ekstrak blok pihak berkuasa, kemudian ambil cap jari fail yang diekstrak, kerana itulah salinan yang benar-benar akan digunakan oleh klien.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Cap jari yang sama bermaksud bahan kepercayaan itu sama dan ralat rantai mempunyai punca lain, yang merupakan siasatan berbeza. Cap jari yang berbeza bermaksud sijil yang berbeza, dan di situlah bahagian seterusnya bermula.
Baca ketidakpadanan sebelum menganggap serangan
Cap jari yang berbeza bermaksud sijil yang berbeza dan tidak lebih daripada itu. Pengeluaran semula, putaran, pihak berkuasa yang dinamakan semula, atau himpunan lapuk semuanya menghasilkan fail berbeza dengan sejarah yang sah sepenuhnya. Yang mana milik penggunaan adalah soalan untuk pengendali atau rekod penggunaan, bukan untuk masa pengubahsuaian fail. Arkib menyalin cap masa, jadi fail yang lebih baharu bukan secara automatik punca yang betul.
Punca yang menandatangani dirinya sendiri adalah normal, jadi menemui satu bukan bukti masalah. Tugas pengesah ialah membina laluan dari sijil pelayan ke punca yang diberikan kepadanya, dan ralat rantai biasanya bermaksud laluan itu tidak dapat diselesaikan.
Semak sama ada punca profil yang gagal ialah pihak berkuasa yang masih mengeluarkan sijil oleh penggunaan. Jika cap jari tidak sepadan dengan apa-apa dalam rekod penggunaan, profil itu semata-mata lapuk, dan tiada penalaan di pihak klien akan membaikinya.
Baiki kepercayaan tanpa mematikan pengesahan
Pembaikan jangka pendek ialah mematikan pengesahan atau menambah setiap sijil dalam rantai sebagai punca. Kedua-duanya membuat mesej itu hilang, dan kedua-duanya mengubah pelayan mana yang akan diterima oleh klien mulai saat itu. Hidupkan semula pengesahan, pasang punca yang dimaksudkan dan uji semula.
Jika rantai kini terbina tetapi ralat lain muncul, itu kemajuan: pengesahan nama, tarikh kesahan dan pembatalan ialah pemeriksaan berasingan dengan mesej berasingan. Simpan pasangan cap jari dan teks ralat asal bersama dalam tiket, supaya orang seterusnya melihat punca mana yang dimuatkan dan mana yang dijangka. Sepasang cap jari cukup kecil untuk ditampal dalam nota penyerahan, dan kejadian seterusnya kemudian mengambil masa lima minit dan bukannya satu petang.
Dapatkan pihak berkuasa yang betul melalui saluran disahkan yang sama yang menyampaikan profil itu. Menarik sijil dari pelayan kerana subjeknya kelihatan biasa ialah tindakan berbeza, dan ia secara senyap meluaskan apa yang akan dipercayai oleh klien.