最近开发一个需求,涉及获取服务端https证书。一般进行https调用我们都不太关心底层细节,直接使用WebClient或者HttpWebRequest来发送请求,这两种方法都无法获取证书信息,需要用到ServicePoint,这个类用于提供HTTP连接的管理。

写个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获取ServicePointvar servicePoint = ServicePointManager.FindServicePoint(uri);//取服务端证书,X509Certificate格式,转一下var serverCert = new X509Certificate2(servicePoint.Certificate);Console.WriteLine("颁发给:{0}", serverCert.Subject);Console.WriteLine("颁发者:{0}", serverCert.Issuer);Console.WriteLine("序列号:{0}", serverCert.SerialNumber);Console.WriteLine("指  纹:{0}", serverCert.Thumbprint);Console.WriteLine("起  始:{0}", serverCert.NotBefore);Console.WriteLine("过  期:{0}", serverCert.NotAfter);}}
}

运行看效果:

上半部分是程序运行结果,下面是用Firefox查看的服务端证书信息,各项信息都能对应上。如果程序中涉及多个不同服务器的访问也没关系,关键在于根据Uri获取ServicePoint,然后取到的证书就是此服务器的了。

获取服务端https证书相关推荐

  1. [react] 怎样使用Hooks获取服务端数据?

    [react] 怎样使用Hooks获取服务端数据? import React, { useState, useEffect } from 'react'; import axios from 'axi ...

  2. AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)

    1. Ajax实现步骤 创建ajax对象 let xhr = new XMLHttpRequest(); 告诉ajax请求地址及请求方式 xhr.open('get','http://www.exam ...

  3. asp.net获取服务端和客户端信息

    为什么80%的码农都做不了架构师?>>>    asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName 获取用户信息:Page.User ...

  4. 魔方APP项目-01-移动端开发相关概念、移动端自适配、元信息(meta)、开发准备、移动端项目搭建(模拟器调试)、APICloud(APICloud 前端框架,获取服务端API接口)

    一.移动端开发相关概念 1.APP类型 ①.Native APP Native APP又称原生APP,就是我们平时说的手机应用软件. 原生APP 是针对IOS.Android.Windows等不同的手 ...

  5. 移动端HTTPS证书校验过程是怎样的

    写了几篇关于HTTPS证书的文章之后,让我对HTTPS证书的内容以及证书的申请下载等问题,有了一定的了解.今天在这篇里咱再了解一下关于移动端HTTPS证书校验的相关问题,HTTPS证书购买和HTTPS ...

  6. easyconnect获取服务端配置信息失败_图文解析 Nacos 配置中心的实现

    本文不会贴太多源码,基本靠图片和文字叙述 全文共 2582 字,预计阅读时间 12 分钟 什么是 Nacos 配置中心的架构 Nacos 使用示例 官方代码示例 Properties 解读 配置项的层 ...

  7. easy connect 获取服务端配置信息失败_安装配置mysql

    qq: 512714507 pip install mysql-connector-python pip install mysql https://jingyan.baidu.com/article ...

  8. easy connect 获取服务端配置信息失败_如何统计 Mysql 服务器状态信息?

    最近在看<高性能的 Mysql>一书,下面是关于如何学习统计 Mysql 服务器状态的学习总结,主要是学习使用 SHOW STATUS,SHOW ENGINE INNODB STATUS, ...

  9. 如何获取网站的HTTPS证书?

    如果你的网站需要收集敏感信息(包括电子邮件和密码等),那么就需要保证网站的安全.最好的方法之一是启用HTTPS,以便自动加密进出服务器的任何信息,防止黑客窃取和篡改访客的信息. HTTPS超文本传输协 ...

最新文章

  1. excel设置单元格为文本
  2. EDM HTML编写建议和规范
  3. RuntimeError: The full_object_detection must use the iBUG 300W 68 point face landmark style.
  4. SVN本地代码未提交而被覆盖
  5. csv格式清洗与转换python123,Python Pandas 清理错误格式数据
  6. JSON 数据格式(基础知识)
  7. Java虚拟机(六)——虚拟机栈
  8. 通过表达式树构建URL时正确识别ActionNameAttribute
  9. i.MX应用处理器-iMX8系列产品介绍
  10. 微软官网win10系统下载地址
  11. spring cloud - 概述
  12. 效果图是怎么做出来的?
  13. 鸿蒙大陆罪恶深渊哪里出,库库马力
  14. 磁盘清理软件:BlueHarvest for Mac
  15. 使用Adobe Acrobat编辑PDF,实现文件签名
  16. 关于学校邮箱收不到matlab验证短信
  17. K8s学习之yum安装
  18. LZY踢石头(优先队列)
  19. linux磁盘分区方法 重新分区方法 新建分区方法
  20. 在命令行cmd中运行带相对路径的py脚本时, 找不到路径的解决方案

热门文章

  1. SQLSERVER监控复制并使用数据库邮件功能发告警邮件
  2. 南洋理工大学科学家研发组装机器人,可以帮助用户组装椅子
  3. spring session 退出登录 清理session
  4. linux用户和文件目录管理
  5. 2016年7月微软MVP申请開始了!
  6. 常用和不常用端口一览表收藏
  7. 挨踢部落直播课堂第一期:起航2017——拥抱大数据
  8. 硬盘格式化与快速格式化的区别
  9. Fedora 安装WIN字体(如 宋体)
  10. 3、深入理解计算机系统笔记:程序的机器级表示