Koneksi Client VPN putus, sertifikat di ACM diganti, dan tidak ada yang berubah. Objek sertifikat tidak pernah menjadi hal yang digunakan titik akhir. Titik akhir menyimpan asosiasi ke sertifikat saat dibuat, bersama CA klien yang akan divalidasinya, jenis autentikasi, subnet, dan aturan otorisasi, dan tidak satu pun asosiasi itu memiliki panggilan ubah yang menerima sertifikat pengganti. Mengganti byte di balik ARN adalah perubahan pada sertifikat, bukan pada titik akhir yang menangkapnya.

Titik akhir menyimpan referensi, bukan sertifikat

Mekanisme ini layak dinyatakan dengan tepat karena menjelaskan seluruh kegagalan. create-client-vpn-endpoint mengambil ARN sertifikat server dan ARN rantai sertifikat root klien, dan titik akhir yang dihasilkan menyimpan referensi tersebut beserta opsi autentikasi sebagai properti tetap. Permukaan API tidak menawarkan operasi yang menukar sertifikat server pada titik akhir yang sudah ada.

Anda dapat memastikan ikatan itu tanpa menebak. aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-0123456789abcdef0 mencetak ARN sertifikat, ARN rantai root klien, jenis autentikasi, CIDR klien, dan subnet terkait, yaitu seluruh rangkaian properti yang harus Anda reproduksi. Jalankan sebelum dan sesudah impor ulang, dan keluarannya tidak bergerak. Itulah buktinya bahwa impor ulang tidak akan pernah membantu.

Mengapa impor ulang tidak dapat menjangkau titik akhir

Impor ulang menulis badan sertifikat baru di bawah ARN yang sudah ada. Itu operasi yang sah ketika sertifikat mendekati kedaluwarsa, dan ACM akan menerimanya selama kunci privat cocok dan rantainya valid. Yang tidak dilakukannya adalah menjalankan ulang validasi saat pembuatan titik akhir, sehingga asosiasi dan materi di baliknya tetap seperti saat titik akhir dibangun.

Itulah sebabnya gejalanya terbaca seperti gangguan jaringan. Handshake TLS gagal atau direset sebelum otorisasi sempat dievaluasi, sehingga grup keamanan, rute, dan aturan otorisasi semuanya tampak tidak bersalah, dan memang demikian.

Rantai adalah bagian dari sertifikat klien

Separuh kegagalan lainnya ada pada sertifikat klien, dan lebih mudah diabaikan. Sertifikat klien harus diimpor dengan rantai yang menerbitkannya, meskipun formulir impor menampilkan kolom itu sebagai opsional. Tanpa rantai, titik akhir tidak dapat membangun jalur dari sertifikat klien ke CA root klien yang dengannya ia dikonfigurasi, dan koneksi berakhir dengan reset lunak yang terdengar seperti firewall yang menjatuhkan paket. openssl verify -CAfile root-ca.pem client.crt menjawab pertanyaan itu secara lokal dalam satu detik, dan itu semestinya perintah pertama yang Anda jalankan.

Impor ulang dengan rantai adalah perbaikan nyata untuk separuh itu, dan tetap saja tidak cukup sendirian. Setelah objek ACM berubah, titik akhir yang memegang asosiasi lama adalah hal yang salah untuk terus diuji. Kedua langkah termasuk dalam perbaikan yang sama, itulah sebabnya perbaikan dua bagian bukan kontradiksi.

Membuat ulang titik akhir adalah migrasi

Membuat titik akhir pengganti adalah migrasi, bukan percobaan ulang, dan memperlakukannya sebagai percobaan ulang adalah cara tim berakhir dengan dua titik akhir yang setengah terkonfigurasi. Titik akhir baru mendapat ID baru dan, kecuali Anda merencanakannya, nama DNS baru untuk setiap pengguna. Jaga profil klien menunjuk ke nama, bukan alamat, agar penukaran menjadi perubahan catatan, bukan redistribusi.

Urutan yang menjaga ini tetap aman itu singkat: buat titik akhir baru dengan CIDR, subnet, dan aturan otorisasi yang sama, ekspor profil baru dengan aws ec2 export-client-vpn-client-configuration, dan verifikasi dengan satu pengguna. Baru setelah itu titik akhir lama diturunkan.

Menonaktifkan titik akhir lama punya urutannya sendiri. Cabut sertifikat klien yang ingin Anda pensiunkan sebelum menghapusnya, karena titik akhir baru yang masih memercayai CA lama terus menerima sertifikat yang Anda kira sudah hilang. Lalu hapus titik akhir lama dan hapus aturan otorisasinya, agar profil lama tidak dapat menyambung kembali ke jaringan tujuan yang Anda kira sudah ditutup. Tulis ID titik akhir lama dan pengenal asosiasi ke catatan perubahan, karena migrasi yang dibandingkan dengan ingatan adalah cara titik akhir yang berfungsi dibangun ulang dua kali.

Urutkan diagnosis

Pisahkan tiga kegagalan sebelum mengubah konfigurasi apa pun. Klien tidak dapat menyelesaikan TLS, klien menyelesaikan TLS dan tidak diotorisasi, atau klien terhubung dan tidak dapat mencapai tujuan. Asosiasi sertifikat termasuk yang pertama, aturan otorisasi yang tidak mencakup alamat klien termasuk yang kedua, dan rute atau grup keamanan termasuk yang ketiga, di mana membuat ulang titik akhir hampir selalu langkah yang salah.

Titik akhir yang berfungsi selama berbulan-bulan lalu berhenti, tanpa perubahan sertifikat atau kebijakan, adalah kasus tersendiri. Membangunnya ulang dengan pengaturan identik dapat memulihkan layanan, tetapi itu alasan untuk menjaga konfigurasi tetap dapat direproduksi, bukan alasan untuk membangun ulang pada setiap insiden.

Simpan empat hal di kendali versi agar pembangunan ulang berikutnya berupa diff, bukan improvisasi: parameter titik akhir, ARN sertifikat dan rantai, aturan otorisasi, dan CIDR klien. Dokumentasi autentikasi Client VPN mencantumkan sertifikat mana berperan apa, yang layak diperiksa sebelum menganggap sertifikat sebagai masalah. Jika impor ulang tidak mengubah apa pun dan titik akhir masih direset, asosiasinya yang dicurigai dan jawabannya adalah titik akhir baru yang dibangun dari parameter yang tercatat. Jika titik akhir memang mengambil objek baru, asosiasinya sudah benar dan kesalahannya ada di rantai klien atau lapisan otorisasi.

Artikel terkait