【5.如何验证 数字证书的有效性】

5. 数字证书与公钥基础设施 PKI(Public Key Infrastructure,公钥基础设施)是一个使用公钥技术来提供安全服务的框架。它定义了如何管理和维护公钥,以及如何通过证书来验证公钥的真实性。证书颁发机构(CA, Certificate Authority):负责生成和管理数字证书。注册机构(RA, Registration Authority):负责用户的注册和证书的发放。证书存储库(Certificate Repository):存储已发行的证书,供公众查询。证书策略(Certificate Policy) 阅读详情

1. 数字证书由 CA 签发给用户,CA 保证它的安全和可靠性,使用CA的私钥对证书进行签名,使用 CA的公钥验证签名。

通过Java的代码演示,分别从 吾爱 网站下载了 它的末端证书、它的上级CA证书,以及 从 优快云下载了 末端证书。

使用 吾爱的 上级CA 分别验证 吾爱的用户证书 和 优快云的用户证书,查看区别。

 

package verify;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PublicKey;
import java.security.SignatureException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;

public class Verify_cert {

	/**
	 * 验证 CA 颁发的证书
	 * 1. 读取 CA 证书的公钥
	 * 2. 读取已签名的证书
	 * 3. 使用 公钥验证证书
	 * 
	 * 4. 附加,一个假的证书测试,是否有效
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		
		String ca_path = "C:\\Users\\Administrator\\Desktop\\ttt\\Cert_test\\ca_52.cer";
		String ra_path = "C:\\Users\\Administrator\\Desktop\\ttt\\Cert_test\\user_52.cer";
		String ra_path_fake = "C:\\Users\\Administrator\\Desktop\\ttt\\Cert_test\\user_csdn.cer";
		
		verify_cert(ca_path, ra_path, ra_path_fake);
	}
	/**
	 * 1. 使用 CA 的公钥 验证 证书
	 * @param ca_52_path
	 * @param user_52_path
	 * @param user_csdn_path
	 * @throws InvalidKeyException
	 * @throws CertificateException
	 * @throws NoSuchAlgorithmException
	 * @throws NoSuchProviderException
	 * @throws FileNotFoundException
	 */
	public static void verify_cert(String ca_52_path,String user_52_path,String user_csdn_path) throws InvalidKeyException, CertificateException, NoSuchAlgorithmException, NoSuchProviderException, FileNotFoundException{
		
		//  证书实例,将文件输入流 转换为 证书
		CertificateFactory cf = CertificateFactory.getInstance("X.509");
			
		// 读取 ca 证书 文件,获取证书的 公钥
		FileInputStream fis_ca = new FileInputStream(new File(ca_52_path));
		Certificate ca_52_cert = cf.generateCertificate(fis_ca);
		PublicKey ca_52_publicKey = ca_52_cert.getPublicKey();
		
		// 读取末端证书,获取证书
		FileInputStream fis_ra = new FileInputStream(new File(user_52_path));
		FileInputStream fis_ra_fake = new FileInputStream(new File(user_csdn_path));	
		Certificate user_52_cert = cf.generateCertificate(fis_ra);
		Certificate user_csdn_cert = cf.generateCertificate(fis_ra_fake);
		
		// 验证证书是由 某公钥签发的:使用公钥对 该证书信息解密得到签名值 一致,或者 使用公钥对 签名值 解密,得到 证书信息一致
		try {
			user_52_cert.verify(ca_52_publicKey);
		} catch (SignatureException e) {
			System.out.println("该证书不属于 此CA签发.");
		}
		System.out.println("该证书 属于 此CA签发");
		try {
			user_csdn_cert.verify(ca_52_publicKey);
		} catch (SignatureException e) {
			System.out.println("该证书不属于 此CA签发.");
		}
	}
}

显示如下:

未完待续。

如何在离线的电脑上部署一个本地Deepseek(使用ollama) 例如,如果您的显卡显存为 16GB,官方推荐使用 32b 大小的 DeepSeek 模型。请根据您的硬件配置选择适合的模型版本,以获得最佳性能。首先我们需要将ollama和chatbox的安装包,Deepseek模型文件通过U盘或者光盘的形式导入到这台不能联网的电脑上。按照时间排序,找到最大的那个文件,就是gguf格式的模型,复制出来,改名为qwen2.5-coder0.5b.gguf。:基于开源模型(如 QWEN 和 LLAMA)微调,参数量从 1.5B 到 70B 不等,适合本地硬件部署。 阅读详情

相关推荐

Linux音频调试实战:ALSA架构与tinymix工具的高级应用技巧

本文深入探讨了Linux音频调试的核心技术,重点解析了ALSA架构下音频信号的路由与混合机制。通过介绍轻量级命令行工具tinymix的高级应用技巧,指导开发者如何精准排查无声、音量异常、多路音频共存等复杂问题,并分享编写自动化测试脚本以提升嵌入式及智能设备音频开发效率的实战方法。

weixin_29210727的博客 101

数字证书有效性验证

数字证书的有效性验证主要从三个方面: 1,数字证书有效期验证 2,根证书验证 3,CRL验证 下面依次讲解这三块内容 1,数字证书有效期验证 就是说证书的使用时间要在起始时间和结束时间之内。通过解析证书很容易得到证书的有效期 2,根证书验证 先来理解一下什么是根证书? 普通的证书一般包括三部分:用户信息,用户公钥,以及CA签名 那么我们要验证这张证书就需要验证CA签名的真伪。那么就需要CA公钥。而CA公钥存在于另外一张证书(称这张证书是对普通证书签名的证书)中...

包磊磊的博客 3119

lighttools用透镜旋转手动创建菲尼尔透镜

学过很多软件,都没有留下痕迹,很多年之后只记得学过的软件常用的一些功能,稍微难一些的再次用起需要重新学,但如果留下点痕迹,重新再用就会很快。lighttools无意之中接触了,记一点点笔记吧。...

kingsai2012的博客 4331

手动实现CA数字认证(java)

数字签名、CA认证、加密算法

qq_51715571的博客 5298

AD5700 HART芯片实战笔记:从时钟检测到数据收发,一个STM32工程师的踩坑实录

本文详细记录了STM32工程师在AD5700 HART芯片开发中的实战经验,涵盖时钟信号检测、RTS切换时序优化及HART数据解析等关键问题。通过硬件设计检查、定时器配置优化和大小端转换方案对比,解决了工业级芯片开发中的典型挑战,为嵌入式开发者提供宝贵参考。

weixin_42715608的博客 164

CrossOver实战:在Mac上流畅运行《梦幻西游》端游与搬砖指南

在跨平台应用开发与系统兼容性领域,如何让为特定操作系统设计的软件在其他平台上运行,是一个经典的技术挑战。其核心原理在于通过兼容层或转译技术,将程序的系统调用和图形接口指令实时转换为目标系统能理解的格式。这项技术的价值在于极大地扩展了硬件设备的软件生态,让用户无需依赖虚拟机或双系统即可无缝使用关键应用。在游戏、专业工具等场景中,这能显著提升工作效率和用户体验。本文以经典端游《梦幻西游》为例,详细解析如何在搭载Apple Silicon或Intel芯片的Mac上,借助CrossOver这一成熟的兼容层方案,构建

weixin_30129025的博客 561

Certificate数字证书的有效性验证

数字证书有效性验证的概念及代码

M先生的博客 3229

【从零开始学习SLAM】官方tf教程小海龟跟随程序

ros tf 进行坐标系之间转换的运算和发布

小秋 AI SLAM 入门实战教程 2033

数字证书的有效性检验

同样以沃通搭建的演示网站中的证书为例,打开该证书后,往下翻找,可以找到“CRL分发点”,根据其提供的网址访问后,可以得到CRL列表,打开该列表,选择吊销列表即可查看被吊销的数字证书序列号和吊销日期,依次核对被吊销的数字证书序列号后即可判定该证书是否有效。下载后打开该证书,点击其使用者,可以对比网站的证书的颁发者与我们下载的这个证书的使用者相同,从网站的已有证书链上的序列号也能佐证我们找寻的上级证书无误。通过证书撤销状态查询,如果发现证书已经被撤销,那么证书就是无效的,用户不能使用该证书。

u010543848的博客 3312

智驾芯片新天团!NVIDIA Thor vs 高通8797 vs 蔚来神玑NX9031,2025-2026谁能称王?

应用场景推荐芯片理由高阶NOA + L4 Robotaxi千TOPS以上,满足BEV+TransformerL2+/L3级别NOAThor-U / 高通8797算力适中,功耗控制佳,生态成熟经济型城市NOAThor-Z / S性价比均衡,适合前装普及自研平台一体化NX9031华为之外最强自研整合方案📌 TOPS不再是天花板,GPU、带宽、功耗、上市时间和车企绑定都是决胜关键📌 Thor系列仍然统治高端,但国产神经元开始觉醒📌 智驾芯片的选择,从“强”走向“适合场景”

weixin_43199439的博客 2640

提高RFID检测距离以及检测速度的方法总结

摘要:提高RFID检测距离需优化阅读器功率、标签灵敏度、天线设计及频段选择,同时减少环境干扰;提升检测速度则需改进防碰撞算法、增强并行处理能力、精简数据传输。实际应用需平衡两者关系,如物流仓储采用UHF频段、高增益天线和动态Q算法实现远距离高速读取,ETC系统则通过微波频段和高速调制实现超远距离快速识别。不同场景需针对性优化硬件配置和系统参数。

start_up_go的博客 292

数字证书及安全加密(四)使用CA签发的服务器证书并验证证书链

在上一篇的实践中配置成功了双向SSL,但是使用的是本地用keytool生成的证书而非真正的服务器证书;而且对用户证书的校验仅仅是将用户公钥添加至服务器信任证书库,真正面对大量用户时不可能在服逐个添加用户公钥证书;客户端程序访问多个不同的服务器时也不应该将服务器公钥全部配置进客户端信任证书库。 本篇是如何使用CA签发的服务器证书配置SSL和配置tomcat使用证书链的实践。 [b]1.申...

sb33060418的专栏 1013

手把手教你学PCIE(10.5)--PCIE故障排除方法的分步排查法介绍

通过以上分步排查法,你可以系统地诊断和解决 PCIe 设备的故障。每个步骤都有助于逐步缩小问题范围,最终找到并解决问题。

MHD0815的博客 1872

对称加密、非对称加密、摘要算法(HASH算法)、数字签名和数字证书的区别和联系

Hash算法的特点是单向不可还原,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。只要源数据不同,算法得到的摘要必定不同。常见算法有:MD5、RIPEMD、SHA、MAC和国密的SM3。【MD5不建议使用,已经被爆】。

qq_43659871的博客 1712

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

使用 OpenSSL API 进行安全编程,第 2 部分: 安全握手

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33694172的博客 133

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

初识密码学

信息安全 信息安全的三要素 信息安全中需要解决的三个问题: 保密性(Confidentiality):信息在传输是不被泄露 完整性(Integrity):信息在传输时不被篡改伪造 有效性(Availability):信息的来源是合法可信的 这三点统称CIA Triad 公钥密码解决保密性问题,数字签名解决完整性和有效性问题 密码学 1. 对称加密 采用单个秘钥对明文进行加密的方法,同时该秘钥...

Kity_Xu的博客 549

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数字证书的有效性验证

最近在做数字证书有效性验证的接口,主要是从数字证书的有效期、颁发根证书和CRL进行验证,下面我就从这几个方面来说数字证书的有效性验证。 一、有效期 证书的有效期验证这个比较简单,就是使用时间在必须在证书起始和结束日期之间才有效,通过解析X.509对象很容易获取起止时间,判断证书有效期代码如下:         /// /// 有效期验证 ///

sunboy2718的专栏 7982

证书有效性验证、根证书

一、 数字证书的有效性验证主要从三个方面: (1)数字证书有效期验证 (2)根证书验证 (3)CRL验证 1、数字证书有效期验证 就是说证书的使用时间要在起始时间和结束时间之内。通过解析证书很容易得到证书的有效期 2、根证书验证 先来理解一下什么是根证书? 普通的证书一般包括三部分:用户信...

hqy1719239337的博客 1万+

SSL

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34167043的博客 76

OCSP:证书的有效性管理和验证

CRL的数据形成后,要把它公布在网上,然而,CRL的数据集中存放在CA的服务器中可能带来另一个问题,就是当用户数量庞大,而且到了交易集中发生的高峰时期时,对服务器的并发访问可能造成网络和服务器的拥塞,致使交易效率急剧下降甚至超时。OCSP在线查询机制只能检测证书的注销状态,没有其他功能,例如不能检查证书的有效期,也不返回用户一个完全的证书。证书有效期的设定是出于安全的考虑,当一张证书有效期将结束时,如果想继续使用就需要更新,证书更新时将产生新的公私密钥对,密钥定期更新对于证书的安全性是有好处的。

2301_76563067的博客 1925

数字签名与数字证书

数字签名: 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。 将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(

oscar999的专栏 6万+

【转载】证书的有效性管理和验证--CRL和OCSP

怎样验证数字证书    数字证书号称是网上的身份证。网上交易者通过交易对象的数字证书对其产生信任,并能够使用和证书绑定的公钥和交易对象通信,这是PKI认证机制的基本宗旨。但是,当网上交易者从交易对象那里直接获取,或通过访问CA证书库等不同途径得到了交易对象的数字证书以后,这张证书不经过验证是不能放心使用的。验证由安全认证应用软件执行,验证需要包括以下的内容: · 证书完整性验证。即确认这个证书没...

David Gandy 3465

证书的有效性管理和验证—CRL及OCSP的异曲同工之妙

转自https://www.cfca.com.cn/20150811/101230759.html https://www.secpulse.com/archives/113075.html   怎样验证数字证书    数字证书号称是网上的身份证。网上交易者通过交易对象的数字证书对其产生信任,并能够使用和证书绑定的公钥和交易对象通信,这是PKI认证机制的基本宗旨。但是,当网上交易者从交易对象那里直接获取,或通过访问CA证书库等不同途径得到了交易对象的数字证书以后,这张证书不经过验证是不能放心使用的。验

云守护的专栏 3241

CA验证数字证书的有效性

公钥机制面临的问题-假冒身份发布公钥 采用公钥机制进行加密传输面临的一个问题是公钥的发布。任何一个用户都可以通过网络向所有人发布伪造的公钥,如果某个用户假冒真正用户的名义发布一个公钥,在该假冒者被揭穿以前,他可以解读所有发向真正用户的加密消息,还可以通过签名冒充真正用户的身份。 用户A假冒用户B的身份发布一个公钥 其他用户使用假冒的公钥与用户B通信,信息内...

TrustNature 1799

数字证书是什么,里面都包含那些内容

1)概念: 数字证书是数字证书在一个身份和该身份的持有者所拥有的公/私钥对之间建立了一种联系,由认证中心(CA)或者认证中心的下级认证中心颁发的。根证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。 认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的,认证中心必须公布其公共密钥或由更高级别的认证中心提供...

qq_41007781的博客 2万+
上一篇: 【我眼中的 SVN 和 Git】
下一篇: 【达梦数据库+下载+安装+可视工具】
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值