Buat Peninjau Sertifikat dengan .Net | Oleh Matt Bentley | Juni 2022

Programming

[ad_1]
Selamat datang Gaes di suratpembaca.web.id. Dalam kesempatan ini kita akan mengupas tentang Linux yakni Buat Peninjau Sertifikat dengan .Net | Oleh Matt Bentley | Juni 2022

.

Mudah-mudahan artikel tentang Buat Peninjau Sertifikat dengan .Net | Oleh Matt Bentley | Juni 2022

bisa memberikan manfaat bagi Sahabat semua. Mari baca postingan ini
hingga tuntas.

Pemeriksa sertifikat SSL menggunakan API ASP.NET minimal

Kredit: unsplash.com

Saya sering perlu dengan cepat memulihkan detail sertifikat SSL untuk skenario pemantauan dan otomatisasi, jadi saya pikir saya akan membantu menulis API sederhana.

API dapat diintegrasikan untuk akses terjadwal ke detail sertifikat, seperti nama bersama atau SAN, serta dengan memeriksa kesehatan aplikasi untuk memberikan peringatan saat mendekati tanggal kedaluwarsa.

Di dunia .NET, metode yang diterima secara umum untuk mengambil sertifikat TLS adalah dengan menggunakan a HttpClient Dengan perintah HttpClientHandler. Cara tercepat dan teraman untuk membuat permintaan untuk mengatur penangan adalah dengan menggunakan a HEAD Mendaftar ke situs web yang dihosting menggunakan sertifikat:

Ada beberapa masalah dengan kode ini yang membuatnya tidak ideal untuk penggunaan skala.

Membuat banyak HttpClient adalah ide yang buruk

Bahkan jika kamu mengusirnya HttpClient Objek dalam kode Anda menjaga koneksi kumpulan utas tetap terbuka sehingga paket apa pun dapat dikembalikan setelah dibuang. Jika Anda melakukan ini dalam skala besar, Anda dapat dengan cepat bosan dengan WebSockets yang ada. Ada penjelasan yang jauh lebih baik untuk masalah ini di sini.

Untuk menyiasati masalah ini, HttpClientFactory Diperkenalkan untuk mengelola masa pakai sampel HttpClient Anda.

Keamanan benang

Jika kami ingin memperbaiki kode di atas menggunakan berbagi HttpClient Misalnya, dalam hal ini, kita akan menghadapi masalah seperti keamanan benang HttpClientHandler Misalnya, Anda bisa membiasakan diri meninjau sertifikat di berbagai aplikasi.

Jika dua domain berbeda diperiksa secara bersamaan, kami tidak dapat memastikan tanggal kedaluwarsa mana yang diekstraksi untuk setiap sertifikat.

Performa dan bensin

Secara umum, sertifikat tidak sering berubah, jadi kami tidak perlu memproses permintaan untuk host yang sama dalam waktu singkat. Kami juga dapat diblokir atau diblokir oleh server hilir jika kami membuat terlalu banyak permintaan.

Di bagian selanjutnya saya akan menjelaskan cara menggunakan cache untuk menyelesaikan dua masalah terakhir.

Setelah sertifikat diambil oleh panduan ekstraksi sertifikat khusus, penyimpanan sertifikat dibuat untuk menyimpan sertifikat dalam memori. Pengontrol ekstraksi sertifikat diperluas HttpClientHandler Dan dikonfigurasi melalui a HttpClient Siapa yang mengirim HEAD Permintaan untuk menjadi tuan rumah sedang diproses.

Pada HEAD Permintaan dikirim melalui layanan Pencari Sertifikat, yang pertama-tama memeriksa Penyimpanan Sertifikat untuk melihat apakah Sertifikat sudah ada dan, jika tidak, menghubungi server hilir.

Toko Sertifikat

Masalah pertama yang ingin saya pecahkan adalah bagaimana sertifikat dapat disimpan setelah ekstraksi dan diambil sebelum dan sesudah peninjauan. Yang sederhana MemoryCache Cara cepat dan aman untuk menyimpan sertifikat.

Tuan rumah diekstraksi dari requestUri Jadi jika rute lain telah digunakan untuk host yang sama, pemeriksaan sertifikat dapat digunakan kembali.

Pengontrol ekstraksi sertifikat

Sebuah pesanan HttpClientHandler Implementasi telah dibuat untuk merangkum Ekstrak Sertifikat X509 berdasarkan permintaan dan menyimpannya di Penyimpanan Sertifikat.

sertifikat TLS

Saya ingin mengekstrak beberapa detail favorit saya dari sertifikat X509. Saya memutuskan untuk membuatnya TlsCertificate Kelas untuk mengekstrak yang berikut:

  • eksportir
  • Tema
  • Nama umum (ini dapat diambil dari topik)
  • Nama Alternatif Subjek / SAN (ini dapat diekstraksi dari ekstensi sertifikat)

Kode ekstraksi untuk detail ini dapat ditemukan di sini.

Layanan pemeriksaan sertifikat

Bagian terakhir dari teka-teki layanan adalah mengoordinasikan pengambilan sertifikat yang diekstraksi dari penyimpanan sertifikat dan pengiriman HTTP. HEAD Permintaan untuk menjadi tuan rumah sedang diproses.

Layanan memeriksa untuk melihat apakah sertifikat baru saja diekstraksi untuk host yang sedang ditinjau. Jika tidak ada sertifikat yang tersedia, itu akan mengirimkan layanan HEAD Minta host dan ambil sertifikat yang diekstraksi.

Sekarang komponen tinjauan sertifikat telah dibuat, sekarang saatnya untuk membuat beberapa titik akhir API di atas.

POST: / Periksa titik akhir

Titik akhir ini selalu mengembalikan 200 Jawab, meskipun sertifikat tidak valid atau telah kedaluwarsa.

DAPATKAN: / validasi titik akhir

Titik akhir ini menggunakan string kueri untuk dipanggil menggunakan permintaan GET. Jika sertifikat tidak valid atau kedaluwarsa, sertifikat mengembalikan titik akhir gerbang 502 yang buruk. Karena endpoint menggunakan permintaan GET sederhana, endpoint dapat dengan mudah dilampirkan ke health check untuk memverifikasi sertifikat.

Karena saya menggunakan API khusus minimal IResult Gerbang yang buruk harus dibuat untuk menangani pengembalian hasil. Saya membuatnya sederhana Check Result Kelas yang membuat serial hasil dan menetapkan kode status HTTP tergantung pada validitas sertifikat.

Hasil akhirnya adalah REST API yang mengekstrak informasi sertifikat dan memverifikasi tanggal kedaluwarsa dan nama domain.

Saya harap aplikasi kecil ini akan bermanfaat bagi Anda. Jika Anda ingin melihat kode lengkapnya, Anda dapat menemukannya di sini.

Itu tadi materi tentang Buat Peninjau Sertifikat dengan .Net | Oleh Matt Bentley | Juni 2022

, terimakasih telah mengunjungi website saya, semoga postingannya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.