Sertifikat VPN yang diperbarui: sebagian klien masih menolaknya
Pembaruan bisa mempertahankan nama dan mengubah objeknya. Bandingkan kepercayaan CA, pemeriksaan nama, dan pin di sisi klien sebelum menerima peringatan keamanan apa pun.
Separuh lingkungan tersambung kembali setelah pembaruan dan tiga perangkat menolak, masing-masing dengan peringatan tentang identitas gateway. Pembaruannya sendiri rutin. Yang dipegang ketiga perangkat itu adalah pin pada objek lama, dan pin bukanlah daftar CA, pemeriksaan nama, atau entri penyimpanan kepercayaan. Bandingkan ketiga mekanisme itu sebelum menyentuh klien mana pun.
Satu pembaruan, dua perilaku
Klien yang tersambung kembali punya keputusan kepercayaan yang masih lolos, sedangkan yang menolak punya persyaratan yang tidak dipenuhi sertifikat baru. Perbedaan itu adalah informasi, bukan gangguan. Baca pesan klien yang gagal dengan tepat. Ketidakcocokan nama, penerbit tak dikenal, dan sidik jari yang berubah adalah tiga vonis berbeda, dan hanya yang terakhir menunjuk ke pin.
Periksa juga profil mana yang dipilih klien yang gagal. Salinan impor yang tinggal di penyimpanannya sendiri tidak berubah saat administrator menyunting berkas asli di tempat lain.
Pembaruan mengganti objek, bukan hanya tanggal
Sidik jari mengidentifikasi isi sertifikat yang terkodekan. Pembaruan menghasilkan sertifikat baru, jadi sidik jari berubah meski nama subjek dan kunci publik tetap sama. Itu wajar dan tidak berbahaya bagi klien yang memercayai CA dan memverifikasi nama. Itu fatal bagi klien yang dikonfigurasi menerima tepat satu sertifikat, dan juga fatal bagi klien yang penyimpanan kepercayaannya tidak pernah menerima penerbit baru.
openssl x509 -in server.pem -noout -subject -issuer -dates -fingerprint -sha256
openssl x509 -in server.pem -noout -pubkey | openssl sha256
Baris kedua menjawab pertanyaan lain: apakah pasangan kunci bertahan. Pembaruan yang memakai ulang kunci mempertahankan nilai itu dan hanya mengganti sertifikat, dan itulah tepatnya kasus ketika administrator tergoda menganggap tidak ada yang berubah. Periksa sertifikat yang digunakan, bukan yang ada di host build. Membandingkan berkas di repositori membuktikan apa yang dihasilkan, bukan apa yang sedang disajikan pendengar.
Baca apa yang dipin klien
Sebagian klien menyimpan sidik jari di profilnya dan membandingkannya pada setiap koneksi. Yang lain menyimpannya di penyimpanan kepercayaan platform, dan yang lain lagi hanya bergantung pada CA. Perbaikannya berbeda di setiap kasus, jadi kenali dulu mekanismenya.
grep -n 'peer-fingerprint' /etc/openvpn/client/*.conf
openssl s_client -connect gw.lab.example.net:443 -servername gw.lab.example.net < /dev/null 2>&1 | openssl x509 -noout -fingerprint -sha256
Perintah pertama menunjukkan pin di profil konvensional; yang kedua menunjukkan sidik jari yang benar-benar disajikan endpoint saat ini. Ketika keduanya berbeda, Anda sudah menemukan kegagalannya tanpa menebak. Jangan tempelkan nilai baru ke setiap klien yang mengeluh. Klien yang menolak karena alasan penerbit akan terus menolak, dan Anda akan mengajari diri sendiri bahwa sidik jari adalah masalahnya padahal bukan.
Bandingkan sertifikat yang disajikan setiap backend
Hasil yang terputus-putus biasanya berarti lebih dari satu endpoint, dan pembaruan yang diterapkan pada satu node membuat node lain menyajikan objek lama. Bandingkan setiap backend berdasarkan alamat, bukan berdasarkan nama bersama.
for h in 10.30.0.11 10.30.0.12; do echo "$h"; openssl s_client -connect $h:443 -servername gw.lab.example.net < /dev/null 2>&1 | openssl x509 -noout -subject -dates -fingerprint -sha256; done
Kumpulan di mana satu node tertinggal menjelaskan klien yang tersambung pada percobaan kedua dan gagal pada percobaan pertama. Itu juga menjelaskan pemeriksaan pemantauan yang lolos sementara pengguna mengeluh. Perbaiki keterlambatannya dulu. Menggulirkan konfigurasi kepercayaan sebelum setiap node menyajikan sertifikat baru menciptakan jendela ketika tidak ada yang bekerja, dan menggulirkannya setelahnya membuat klien gagal tanpa pola.
Ubah kepercayaan lewat jalur terkelola
Konfirmasi penggantian melalui kanal administratif yang sudah tepercaya sebelum menerimanya di mana pun. Tanggal kedaluwarsa yang masuk akal bukan bukti kepemilikan. Perbarui konfigurasi terkelola melalui proses yang memilikinya, dengan tumpang tindih identitas yang dapat diterima bila direncanakan, dan pertahankan verifikasi nama yang dituntut penerapan. Pin tanpa pemeriksaan nama adalah rancangan yang lebih lemah daripada kepercayaan CA yang digantikannya.
Lalu verifikasi per klien: sambungkan, konfirmasi identitas yang diterimanya, dan catat versi sertifikat yang kini dipercayainya. Peringatan yang diabaikan sekali punya cara untuk kembali pada pembaruan berikutnya.