Ralat Kepercayaan Android IKEv2: Hantar CA Perantaraan, Bukan Akar
Telefon menolak gateway kerana rantaian yang diterimanya berhenti awal. Tentukan: hantar perantaraan, betulkan identiti, atau tukar jenis kunci.
Telefon enggan menyambung dan mencetak No trusted RSA public key found for vpn.example.net, sedangkan sijil gateway yang sama berfungsi dari komputer riba pada rangkaian yang sama. Langkah yang menggoda ialah mengeluarkan semula sijil. Sebelum berbuat demikian, tentukan yang mana antara tiga kegagalan yang anda hadapi, kerana hanya satu daripadanya berkaitan kandungan sijil. Mesej itu merangkumi rantaian tidak lengkap, ketakpadanan identiti, dan kunci atau tandatangan yang tidak disokong, dan setiap satu mempunyai pembaikan berbeza.
Tiga kegagalan di sebalik satu mesej
Android membina rantaian daripada sijil gateway kepada CA yang dipilih dalam profil VPN, kemudian membandingkan nama pelayan dengan profil. Pemberitahuan melaporkan hasil, bukan peringkat. Kegagalan kepercayaan bermaksud rantaian tidak dapat dilengkapkan daripada sijil yang disampaikan dalam pertukaran; kegagalan identiti bermaksud rantaian disahkan tetapi nama tidak sepadan; kegagalan algoritma bermaksud peranti atau profil tidak menerima jenis kunci atau tandatangan.
| What you see | What it points to | First move |
|---|---|---|
| Chain stops after the leaf in the daemon log | intermediate not loaded or not sent | load the intermediate as CA material |
| Chain validates, name differs from the profile | identity mismatch | fix the profile name or the certificate SAN |
| Chain validates, handshake still fails | key or signature not accepted | compare key type against the device |
Tentukan dengan bukti dan bukannya mencuba pembaikan mengikut urutan. Satu percubaan pada tahap log 2 terhadap daemon memberitahu anda baris mana anda berada, dan kosnya lebih rendah daripada mengeluarkan semula sijil yang tidak pernah salah.
Tentukan dahulu: adakah seluruh rantaian tiba?
strongSwan menghantar sijil yang dikonfigurasikan untuk sambungan itu, dan perantaraan ialah kelayakan berasingan. Ia mesti dimuatkan sebagai sijil CA sebelum daemon boleh meletakkannya dalam muatan, jadi susunan di mana sijil pelayan ditandatangani oleh perantaraan, akar ialah penambat kepercayaan, dan perantaraan hanya berada dalam direktori binaan CA menghasilkan tepat kegagalan ini: daun sahaja pada wayar, rantaian berakhir awal pada telefon.
Periksa apa yang dipegang daemon dengan swanctl --list-certs pada penggunaan swanctl, atau ipsec listcerts dengan starter lama. Perantaraan sepatutnya muncul sebagai sijil CA dengan akar di atasnya. Jika ia tiada, tiada pilihan klien akan membantu; jika ia ada, beralih ke soalan seterusnya.
Kemudian periksa sama ada ia akan dihantar. Rujukan swanctl.conf mendokumentasikan send_cert, yang lalai ifasked menghantar sijil hanya apabila rakan sebaya meminta; always menghantar tanpa mengira. Setara legasi ialah leftsendcert=always dalam ipsec.conf. Tetapan itu mengawal penghantaran, bukan ketersediaan, jadi ia tidak boleh menggantikan perantaraan yang tidak pernah dimuatkan oleh daemon.
Jika rantaian pendek, muatkan perantaraan di tempat daemon mencari
Letakkan perantaraan dalam direktori CA dan bukan di sebelah daun: /etc/ipsec.d/cacerts untuk persediaan ipsec.conf, /etc/swanctl/x509ca untuk swanctl, atau laluan yang digantikan oleh pakej anda. Muat semula konfigurasi dan senaraikan sijil sekali lagi. Sesetengah versi juga menghantar himpunan yang mengandungi rantaian di dalam fail daun, tetapi direktori CA ialah susunan mudah alih merentas versi dan pakej.
Sahkan dari sisi klien juga. Telefon hanya melihat apa yang dibawa oleh pertukaran, jadi log daemon pada tahap 2 sepatutnya menunjukkan perantaraan dalam sijil yang dihantar. Jika log menunjukkannya dan telefon masih gagal, anda berada dalam baris lain jadual, dan terus melaraskan fail CA tidak akan mengubah hasil.
Jika rantaian lengkap, berhenti menyunting sijil
Kegagalan identiti ialah ketakpadanan antara nama dalam profil VPN dan nama dalam sijil. Android membandingkan identiti pelayan yang anda konfigurasikan dengan sijil yang disahkannya, jadi profil yang menunjuk ke alamat sedangkan sijil menamakan nama hos, atau profil yang menamakan nama hos yang tidak diliputi sijil, gagal selepas pengesahan rantaian berjaya. Betulkan pihak yang salah, dan kekalkan profil dan sijil selaras apabila mana-mana satu berubah.
Kegagalan algoritma muncul dengan rantaian sah dan nama yang sepadan. Keluaran Android berbeza dalam jenis kunci dan skema tandatangan yang diterima, dan jenis profil itu sendiri mengehadkan pilihan. Jika gateway menggunakan gabungan lama atau luar biasa, bandingkannya dengan apa yang disokong peranti sebelum menganggap sijil itu rosak. Log daemon akan menunjukkan jabat tangan berjalan lebih jauh daripada kes kepercayaan, iaitu isyarat bahawa rantaian bukan lagi masalahnya.
Jangan pasang perantaraan sebagai akar pengguna pada telefon
Memasang perantaraan yang hilang sebagai sijil pengguna pada telefon menghilangkan amaran dan mengubah model kepercayaan telefon untuk setiap aplikasi yang menerima akar yang dipasang pengguna. Ia juga menyembunyikan pepijat penghantaran yang akan melanda klien seterusnya, dan membiarkan gateway menghantar rantaian tidak lengkap kepada setiap peranti masa depan. Pembaikan tahan lama ialah di pelayan, sekali, untuk semua klien.
Simpan tiga keputusan secara berasingan dalam rekod perubahan: sijil mana yang dihantar, identiti mana yang dibandingkan, dan algoritma mana yang dirundingkan. Gateway yang sentiasa menghantar rantaian penuhnya, profil yang menamakan sijil dengan betul, dan jenis kunci yang disokong oleh armada ialah tiga fakta kecil, dan itulah keseluruhan kegagalan ini.