remote-cert-tls server: apa yang diperiksanya dalam profil OpenVPN
Arahan ini memeriksa peranan yang dikodkan dalam sijil rakan sebaya, bukan namanya. Bandingkan peranan, sauh kepercayaan dan semakan nama hos sebelum menyahdayakan apa-apa.
Tiga soalan berbeza dijawab oleh tiga bahagian berbeza dalam profil OpenVPN, dan menggabungkannya ialah cara orang akhirnya mematikan semakan yang berfungsi. Adakah sijil rakan sebaya ditandatangani oleh pihak berkuasa yang saya percaya? Adakah sijil itu mengisytiharkan peranan pelayan TLS? Adakah ia pelayan tertentu yang saya mahu capai? remote-cert-tls server hanya menjawab soalan tengah, dan ia berbuat demikian dengan membaca sambungan di dalam sijil.
Tiga semakan yang mudah digabungkan di kepala
Sauh kepercayaan terletak dalam arahan ca. Semakan peranan tergolong dalam remote-cert-tls. Semakan identiti tergolong dalam verify-x509-name, apabila profil menggunakannya, atau mana-mana semakan nama yang ditambah oleh penggunaan.
Ia meliputi kegagalan yang berbeza:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
Sesuatu profil boleh mempunyai ketiga-tiganya dan masih lemah jika CA dikongsi terlalu luas, yang merupakan persoalan pengurusan kunci dan bukan persoalan arahan.
Apa yang dibaca oleh semakan peranan
Arahan ini ialah makro. Ia berkembang menjadi keperluan penggunaan kunci dan keperluan penggunaan kunci lanjutan yang menamakan peranan pelayan web TLS, jadi sijil rakan sebaya mesti benar-benar mengisytiharkan tujuan itu. Sijil yang dikeluarkan untuk pengesahan klien tidak memenuhinya, walaupun pihak berkuasa yang sama menandatangani kedua-duanya.
Itu penting kerana CA yang dikongsi adalah biasa dalam penggunaan kecil. Satu pihak berkuasa menandatangani setiap klien dan pelayan, dan tanpa semakan peranan mana-mana sijil itu boleh menyelesaikan bahagian pelayan dalam jabat tangan. Semakan itu tidak menjadikan senario tersebut mustahil, tetapi ia menghapuskan versi remehnya.
Arahan ini tidak simetri dari segi reka bentuk: klien membawa remote-cert-tls server, dan pelayan membawa remote-cert-tls client. Tukarkannya dan setiap sambungan gagal dengan ralat peranan yang kelihatan seperti sijil rosak.
Profil lama kadangkala menggunakan ns-cert-type untuk tujuan yang sama. Halaman manual semasa menganggap pilihan itu sudah digantikan, jadi profil yang masih bergantung padanya wajar dimigrasikan dan bukan dinyahpepijat.
Mengapa menyahdayakannya terasa seperti pembaikan
Apabila semakan peranan gagal, sambungan berhenti dengan ralat pengesahan dan langkah yang jelas ialah memadam baris itu. Sambungan kemudian muncul, yang terasa seperti kemajuan dan sebenarnya ialah mod kegagalan yang arahan ini wujud untuk menghalangnya. Kini anda menerima rakan sebaya yang sijilnya tidak pernah dimaksudkan untuk peranan itu.
Baca ralat itu sebaliknya. Ia menamakan semakan yang gagal, dan sijil di sebelah sana boleh diperiksa untuk melihat sambungan apa yang benar-benar dibawanya. Dua minit bacaan menentukan sama ada kesalahannya pada pengeluaran atau konfigurasi. Meneka menelan satu petang dan biasanya berakhir dengan profil yang lemah. Sijil pelayan yang diperbaharui tetapi kehilangan penggunaan kunci lanjutannya ialah kesalahan sebenar dalam pembaharuan, bukan alasan untuk melonggarkan klien.
Semakan nama ialah arahan berasingan
Memenuhi semakan peranan bermakna rakan sebaya ialah sesuatu pelayan yang ditandatangani oleh pihak berkuasa anda. Ia tidak menyatakan yang mana, dan itu penting apabila CA yang sama mengeluarkan sijil untuk beberapa get laluan dan salah satunya telah dikompromi atau ditukar guna.
verify-x509-name membandingkan subjek sijil dengan nilai yang anda konfigurasikan, dengan mod pemadanan untuk subjek tepat, awalan atau satu medan. Gunakan medan yang benar-benar mengenal pasti get laluan itu, dan jangkakan untuk mengemas kininya secara sengaja apabila nama berubah.
Kedua-dua arahan ini tidak menggantikan pengendalian kunci yang baik. Jika fail kunci klien disalin ke sana ke mari bersama profil, identiti rakan sebaya hanya sekuat senarai pengedaran.
Periksa sijil sebelum anda menyunting profil
Baca sijil rakan sebaya dan log klien, dalam susunan itu. Sijil memberitahu anda peranan yang diisytiharkannya; log memberitahu anda semakan mana yang menolaknya.
Perintah ini mencetak sambungan penggunaan dan baris pengesahan daripada sambungan terperinci:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyJika sambungan menunjukkan peranan pelayan tetapi log masih melaporkan kegagalan peranan, profil itu mungkin menunjuk kepada fail sijil yang salah dan bukan sijil yang buruk. Jika sambungan hanya menunjukkan pengesahan klien, berhenti melihat klien dan betulkan pengeluarannya. Walau apa pun, pulihkan semakan itu sebelum anda mengisytiharkan sambungan sihat, kerana jabat tangan yang berjaya selepas pengesahan dibuang membuktikan lebih sedikit daripada ralat yang digantikannya.