最近開發(fā)一個需求,涉及獲取服務(wù)端https證書。一般進行https調(diào)用我們都不太關(guān)心底層細節(jié),直接使用WebClient或者HttpWebRequest來發(fā)送請求,這兩種方法都無法獲取證書信息,需要用到ServicePoint,這個類用于提供HTTP連接的管理。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計,青秀網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:青秀等地區(qū)。青秀做網(wǎng)站價格咨詢:18980820575寫個Demo,拿新浪首頁試一下:
using System; using System.Net; using System.Security.Cryptography.X509Certificates; namespace GetServerCertificateDemo { class Program { static void Main(string[] args) { //用WebClient訪問新浪首頁 var http = new WebClient(); var uri = new Uri("https://www.sina.com.cn"); http.DownloadString(uri); //通過Uri獲取ServicePoint var servicePoint = ServicePointManager.FindServicePoint(uri); //取服務(wù)端證書,X509Certificate格式,轉(zhuǎn)一下 var serverCert = new X509Certificate2(servicePoint.Certificate); Console.WriteLine("頒發(fā)給:{0}", serverCert.Subject); Console.WriteLine("頒發(fā)者:{0}", serverCert.Issuer); Console.WriteLine("序列號:{0}", serverCert.SerialNumber); Console.WriteLine("指 紋:{0}", serverCert.Thumbprint); Console.WriteLine("起 始:{0}", serverCert.NotBefore); Console.WriteLine("過 期:{0}", serverCert.NotAfter); } } }
運行看效果:
上半部分是程序運行結(jié)果,下面是用Firefox查看的服務(wù)端證書信息,各項信息都能對應(yīng)上。如果程序中涉及多個不同服務(wù)器的訪問也沒關(guān)系,關(guān)鍵在于根據(jù)Uri獲取ServicePoint,然后取到的證書就是此服務(wù)器的了。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。