获取服务端https证书
最近开发一个需求,涉及获取服务端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获取ServicePoint
var 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证书的更多相关文章
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- 获取服务端https证书 - Java版
接上篇,用java代码实现一下获取远程服务端证书,还是拿新浪首页测试,上代码: package org.test; import java.net.URL; import java.security. ...
- java版gRPC实战之六:客户端动态获取服务端地址
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- asp.net获取服务端和客户端信息
asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostNam ...
- 客户端获取服务端自定义类数据 z
客户端获取服务端自定义类数据 问题一:超时问题,在最后获取数据的时候突然提示服务超时,服务已断开 解决:配置文件添加: <bindings> <wsHttpBinding> & ...
- jsp获取服务端的访问信息
获取服务端访问信息 public static String getUrl(HttpServletRequest request){ String url = ""; if(req ...
- JAVA Socket获取服务端信息
1.Socket.getInetAddress(),获取服务端地址. 2.Socket.getPort(),获取服务端端口.
- js 获取服务端时间,并实现时钟
本例子以vue语法伪代码书写: 1,获取服务端北京时间 getRealTime() { let that = this; var xhr = new XMLHttpRequest(); if( !xh ...
- 获取免费的https证书
可以通过网站获取免费的https证书 首先到https://freessl.org注册一个账号 然后就可以开始创建免费证书了 获取的证书里面通常只有pem后缀文件 nodejs使用的时候需要crt文件 ...
随机推荐
- [转] 从数据库中读取图片并导入Excel文件,C#方式
原文地址, 作者 Lvyou1980 直接源码吧. using System; using System.IO; using System.Data; using System.Drawing; us ...
- ffmpeg编译选项汇总
编译禁用“jack” 和 “crystalhd” : --disable-crystalhd--disable-indev=jack ================================= ...
- ubuntu 桥接备忘
apt install birdge-utils 用于桥接网卡的工具,如命令brctl root@ubuntu:/etc/network# vim interfaces auto br0 ...
- C#自省
[C#自省] 1.根据string,获取type.Type.GetType 方法,获取具有指定名称的 Type,执行区分大小写的搜索. 2.根据obj,获取type.Object.GetType 方法 ...
- kali linux:wireshark不能被root用户启用的解决方案
启动wireshark后,报错: 该界面提示在init.lua文件中使用dofile函数禁用了使用超级用户运行wireshark.这是因为wireshark工具是使用Lua语言编写的,并且在kali ...
- 【SPOJ -NSUBSTR】Substrings 【后缀自动机+dp】
题意 给出一个字符串,要你找出所有长度的子串分别的最多出现次数. 分析 我们建出后缀自动机,然后预处理出每个状态的cnt,cnt[u]指的是u这个状态的right集合大小.我们设f[len]为长度为l ...
- 高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级
1 location 的匹配符 1.1 等于匹配符:= 等于匹配符就是等号,特点可以概括为两点: 精确匹配 不支持正则表达式 1.2 空匹配符 空匹配符的特点是: 匹配以指定模式开始的 URI 不支持 ...
- Hibernate其它API
----------------siwuxie095 (一)Query 1.使用 Query 对象执行查询操作,不需要写 sql 语句,但是要写 hql 语句 (1)hql:即 Hibernate Q ...
- c# ftp 上传文件 与 下载文件
接着上一篇说. 上一篇说了根据配置文件获取路径,并判断路径在服务器中是否存在.如果不存在则在服务器中建立一个. 然后就是往路径下面传输文件了.. 代码: //连接ftp private void Co ...
- linux系统的命令组与函数
一.命令组 许多时候,我们在shell操作上,需要在一定条件下一次执行多个命令,也就是说,要么不执行,要么就全执行,而不是每次依序的判断是否要执行下一个命令.或是,需要从一些命令执行优先次顺中得到豁免 ...