[C#] How to get info certificate https website

Hi mọi người, ngày buồn như tiếng thở dài, tìm đâu cho thấy bài hay để viết :)).

Nhưng lang thang một hồi lại thấy bài này cũng hay, có tính năng kiểm tra Certificate SSL của website đang sữ dụng chứng chỉ Certificate SSL ở đâu ^^~.

Nếu bạn quản lý một lúc nhiều website, và bạn muốn quản lý thông tin tất cả các chứng chỉ website.

Thì bài viết này, sẻ giúp bạn các code để lấy thông tin của một certificate website.

Thông tin ssl của website mình xem từ trình duyệt Chrome:

Ở hình trên, các bạn thấy thông tin chi tiết của website HUNGQB.COM.
FULL CODE
using System;
using System.Net.Security;
using System.Net.Sockets;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DownloadCertificateWebsite
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private async void btnGet_Click(object sender, EventArgs e)
        {
            var info = new StringBuilder();
            var certificate = await CertificateDownloader.GetCertificateAsync(txt_website.Text.Trim(), 443);
            info.AppendLine($"Subject:   {certificate.Subject}");
            info.AppendLine($"Issuer:    {certificate.Issuer}");
            info.AppendLine($"NotBefore: {certificate.NotBefore}");
            info.AppendLine($"NotAfter:  {certificate.NotAfter}");
            info.AppendLine($"Algorithm: {certificate.SignatureAlgorithm.FriendlyName}");
            txt_info.Text = info.ToString();
        }
    }

    static class CertificateDownloader
    {

        private static readonly RemoteCertificateValidationCallback s_certificateCallback = (a, b, c, d) => true;

        public static async Task<X509Certificate2> GetCertificateAsync(string domain, int port = 443)
        {
            var client = new TcpClient(domain, port);
            var sslStream = new SslStream(client.GetStream(), leaveInnerStreamOpen: true, s_certificateCallback);
            await sslStream.AuthenticateAsClientAsync(domain).ConfigureAwait(false);
            var serverCertificate = sslStream.RemoteCertificate;
            if (serverCertificate != null)
                return new X509Certificate2(serverCertificate);

            return null;
        }
    }
}
Chúc mọi người thành công và áp dụng thủ thuật này vào chương trình kiểm tra website tốt nhất nhé.
Next Post Previous Post
9 Comments
  • Nặc danh
    Nặc danh Thứ Hai, 19 tháng 9, 2022

    test thử code báo lỗi bạn?

    • Kelvin Key
      Kelvin Key Thứ Hai, 19 tháng 9, 2022

      mình sữ dụng bình thường mà bạn?

    • Anonymous Hz
      Anonymous Hz Thứ Hai, 19 tháng 9, 2022

      bạn có thể vào đây để tại source code về test thử nhé.

  • Đức Huy
    Đức Huy Thứ Hai, 19 tháng 9, 2022

    Thấy ok nhưng k có website của bản thân phát triển để kiểm tra thì cũng vậy thôi haha.

    • Anonymous Hz
      Anonymous Hz Thứ Hai, 19 tháng 9, 2022

      Uầy, nói sao nghe có gì đó sai sai ấy bạn :)), NAME : QUẢN TRỊ VIÊN ??? vậy bạn quản trị cái gì vậy haha vd : e út, gai, hang hiệc...??? :))

  • Unix Coders
    Unix Coders Thứ Hai, 19 tháng 9, 2022

    haha, k có website để viết chương trình này :v

    • Anonymous Hz
      Anonymous Hz Thứ Tư, 21 tháng 9, 2022

      có thể dùng blog m` để test bạn nhé

  • Nặc danh
    Nặc danh Thứ Ba, 20 tháng 9, 2022

    https://www.youtube.com/watch?v=Yr43tclhSKw

  • Anonymous Hz
    Anonymous Hz Thứ Ba, 20 tháng 9, 2022

    website : https://tinhoc88.com/lap-trinh-vb-net/page-1

Add Comment
comment url
Tăng traffic miễn phí