Android IKEv2 güven hatası: kökü değil, ara CA'yı gönderin
Telefon, aldığı zincir erken bittiği için ağ geçidini reddediyor. Karar verin: ara sertifikayı gönderin, kimliği düzeltin veya anahtar türünü değiştirin.
Telefon bağlanmayı reddediyor ve No trusted RSA public key found for vpn.example.net yazdırıyor, oysa aynı ağ geçidi sertifikası aynı ağdaki bir dizüstü bilgisayardan çalışıyor. Cazip hamle sertifikayı yeniden düzenlemektir. Bunu yapmadan önce üç hatadan hangisine sahip olduğunuzu belirleyin, çünkü yalnızca biri sertifikanın içeriğiyle ilgilidir. Mesaj eksik bir zinciri, kimlik uyuşmazlığını ve desteklenmeyen bir anahtar veya imzayı kapsar ve her birinin farklı bir onarımı vardır.
Tek mesajın ardındaki üç hata
Android, ağ geçidi sertifikasından VPN profilinde seçilen CA'ya bir zincir kurar, ardından sunucu adını profille karşılaştırır. Bildirim aşamayı değil, sonucu bildirir. Güven hatası, zincirin değiş tokuşta verilen sertifikalardan tamamlanamadığı anlamına gelir; kimlik hatası, zincirin doğrulandığı ancak adın eşleşmediği anlamına gelir; algoritma hatası, cihazın veya profilin anahtar türünü ya da imzayı kabul etmediği anlamına gelir.
| 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 |
Onarımları sırayla denemek yerine kanıtlarla karar verin. Daemon'a karşı günlük düzeyi 2'de bir deneme, hangi satırda olduğunuzu söyler ve hiç yanlış olmamış bir sertifikayı yeniden düzenlemekten daha ucuza gelir.
Önce karar verin: zincirin tamamı geldi mi?
strongSwan o bağlantı için yapılandırılmış sertifikayı gönderir ve ara sertifikalar ayrı kimlik bilgileridir. Daemon bunları bir yüke koymadan önce CA sertifikası olarak yüklenmeleri gerekir, bu nedenle sunucu sertifikasının bir ara sertifika tarafından imzalandığı, kökün güven bağlantısı olduğu ve ara sertifikanın yalnızca CA'nın derleme dizininde bulunduğu bir düzen tam olarak bu hatayı üretir: telde yalnızca yaprak, telefonda zincir erken biter.
swanctl kurulumunda swanctl --list-certs veya daha eski starter ile ipsec listcerts kullanarak daemon'un ne tuttuğunu kontrol edin. Ara sertifika, üstünde kök bulunan bir CA sertifikası olarak görünmelidir. Yoksa hiçbir istemci seçeneği yardımcı olmaz; varsa bir sonraki soruya geçin.
Ardından gönderilip gönderilmeyeceğini kontrol edin. swanctl.conf başvurusu send_cert öğesini belgeler; varsayılanı ifasked yalnızca karşı taraf istediğinde sertifika gönderir; always her durumda gönderir. Eski karşılığı ipsec.conf içindeki leftsendcert=always. Bu ayar gönderimi denetler, kullanılabilirliği değil, bu yüzden daemon'un hiç yüklemediği bir ara sertifikayı telafi edemez.
Zincir kısaysa ara sertifikayı daemon'un baktığı yere yükleyin
Ara sertifikayı yaprağın yanına değil CA dizinine koyun: ipsec.conf kurulumu için /etc/ipsec.d/cacerts, swanctl için /etc/swanctl/x509ca veya paketinizin yerine koyduğu yol. Yapılandırmayı yeniden yükleyin ve sertifikaları yeniden listeleyin. Bazı sürümler zinciri yaprak dosyasının içinde içeren bir paket de gönderir, ancak CA dizini sürümler ve paketler arasında taşınabilir düzendir.
İstemci tarafından da doğrulayın. Telefon yalnızca değiş tokuşun taşıdığını görür, bu nedenle günlük düzeyi 2'deki daemon günlüğü ara sertifikayı gönderilen sertifikalar arasında göstermelidir. Günlük gösteriyorsa ve telefon yine de başarısız oluyorsa tablonun başka bir satırındasınız ve CA dosyalarını ayarlamaya devam etmek sonucu değiştirmez.
Zincir tamamsa sertifikaları düzenlemeyi bırakın
Kimlik hatası, VPN profilindeki ad ile sertifikadaki ad arasındaki uyuşmazlıktır. Android yapılandırdığınız sunucu kimliğini doğruladığı sertifikayla karşılaştırır, bu nedenle sertifika bir ana makine adı belirtirken adrese işaret eden profil veya sertifikanın kapsamadığı bir ana makine adı belirten profil, başarılı zincir doğrulamasından sonra başarısız olur. Yanlış tarafı düzeltin ve herhangi biri değiştiğinde profille sertifikayı uyumlu tutun.
Algoritma hatası geçerli bir zincir ve eşleşen bir adla ortaya çıkar. Android sürümleri kabul ettikleri anahtar türleri ve imza şemaları bakımından farklıdır ve profil türünün kendisi seçenekleri kısıtlar. Ağ geçidi daha eski veya alışılmadık bir kombinasyon kullanıyorsa, sertifikanın bozuk olduğunu varsaymadan önce cihazın desteklediğiyle karşılaştırın. Daemon günlüğü, el sıkışmanın güven durumundakinden daha ileri gittiğini gösterir ve bu, zincirin artık sorun olmadığının işaretidir.
Ara sertifikayı telefonda kullanıcı kökü olarak kurmayın
Eksik ara sertifikayı telefonda kullanıcı sertifikası olarak kurmak uyarıyı ortadan kaldırır ve kullanıcı tarafından kurulan kökleri kabul eden her uygulama için telefonun güven modelini değiştirir. Ayrıca bir sonraki istemciyi vuracak bir teslimat hatasını gizler ve ağ geçidinin gelecekteki her cihaza eksik bir zincir göndermesine yol açar. Kalıcı onarım sunucudadır, bir kez, tüm istemciler için.
Değişiklik kaydında üç kararı ayrı tutun: hangi sertifikaların iletildiği, hangi kimliğin karşılaştırıldığı ve hangi algoritmanın müzakere edildiği. Her zaman tam zincirini gönderen bir ağ geçidi, sertifikayı doğru adlandıran bir profil ve filonun desteklediği bir anahtar türü üç küçük gerçektir ve bu hatanın tamamı onlardır.