第2章 cmd命令基础:证书操作(certutil)

Hi~ 我是李小咖,主要从事网络安全技术开发和研究。

本文取自《李小咖·网安技术库》,欢迎一起交流学习🫡:https://imbyter.com


Certutil是一个Windows操作系统自带的命令行工具,主要用于执行各种与数字证书相关的任务,同时也可以校验文件MD5,SHA1,SHA256,下载文件等。

在cmd中执行certutil命令,其实执行的是C:\Windows\system32\certutil.exe程序。


一、证书操作

1. 查看证书

certutil可以用来查看数字证书的详细信息。例如,要查看某个证书的详细信息,可以执行以下命令:

# certutil -dump <证书文件名> 
E:\>certutil -dump test.cert

该命令将输出证书的详细信息,包括证书序列号、颁发机构、公钥、签名、有效期等:

2. 安装证书

Certutil可以用来安装数字证书。例如,要将某个证书安装到本地证书存储区,可以执行以下命令:

# certutil -addstore <存储区名> <证书文件名>
E:\>certutil -addstore MY test.cert

其中,存储区名可以是以下之一:

  • MY:个人证书存储区

  • CA:中央证书存储区

  • ROOT:根证书存储区

3. 导出证书

Certutil可以用来导出数字证书。例如,要将某个证书导出为PEM格式,可以执行以下命令:

# certutil -encode <证书文件名> <输出文件名>
E:\>certutil -encode test.cert test.pem

该命令将把证书导出为PEM格式,并保存到指定的输出文件中。

4. 检查证书链

Certutil可以用来检查数字证书的证书链。例如,要检查某个证书的证书链是否完整,可以执行以下命令:

# certutil -verify <证书文件名>
E:\>certutil -verify test.cert

如果证书链完整,该命令将输出“证书链完整”;否则,将输出有关证书链不完整的信息。

5. 列出证书

Certutil可以用来列出数字证书。例如,要列出个人证书存储区中的所有证书,可以执行以下命令:

# certutil -store MY
E:\>certutil -store MY

该命令将列出个人证书存储区中的所有证书,并显示每个证书的序列号、主题、颁发机构等信息。


二、编码解码

1. Base64编码解码

Certutil可以将指定文件的内容进行Base64编码,结果保存到新文件中。

# certutil -encode 目标文件 编码后的新文件
E:\>certutil -encode 123.txt encode.txt

执行效果:

被编码的文件内容,会以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾。


解码,使用 -decode 参数,即可实现对编码后的文件解码:

# certutil -decode 已经编码的文件 解码后的新文件
E:\>certutil -decode encode.txt 123.txt

2. 十六进制编码

Certutil可以将指定文件的内容进行十六进制编码,结果保存到新文件中。

# certutil -encodehex 目标文件 编码后的新文件
E:\>certutil -encodehex 123.txt hex.txt

执行效果:

被编码的文件内容,如下格式保存:


解码,使用 -decodehex 参数,即可实现对编码后的文件解码:

# certutil -decodehex 已经编码的文件 解码后的新文件
E:\>certutil -decodehex 123.txt hex.txt

三、计算散列值

Certutil可以对指定文件进行散列值的计算,支持的算法有MD5,SHA1,SHA256。

1. MD5

# certutil -hashfile 目标文件 哈希算法
E:\>certutil -hashfile test.txt md5

执行效果:

1. SHA1

# certutil -hashfile 目标文件 哈希算法
E:\>certutil -hashfile test.txt SHA1

执行效果:

2. SHA256

# certutil -hashfile 目标文件 哈希算法
E:\>certutil -hashfile test.txt SHA256

执行效果:


四、文件下载

Certutil命令还支持从远程web服务器中下载文件和资源。

格式:certutil -urlcache -split -f 网络资源 保存路径

  • 网络资源是您要下载的文件的URL;

  • 保存路径是您要将该文件保存到计算机上的位置。

E:\>certutil.exe -urlcache -split -f https://img.js.design/assets/stableDiffusion/thumbnail/diffusionImage/641017156a21b6a39f0aa61e.png E:\1.png

注意:

此命令将从指定的URL下载文件并将其保存到指定的位置。如果在指定位置已经存在具有相同名称的文件,则该文件将被覆盖。

执行效果:


五、缓存操作

对于使用Certutil下载文件,以及其他内部调用WinHTTP APIWinInet API的网络软件工具,在下载文件的时候,都会留下一些缓存数据,可以用Certutil查看这些数据。

1. 查看所有缓存

命令:certutil.exe -urlcache

E:\>certutil.exe -urlcache

执行效果:

2. 查看指定下载缓存

如果要查看指定文件的下载缓存,可以用certutil.exe -urlcache -v 下载过的文件命令,比如查看上述下载图片的缓存:

E:\>certutil.exe -urlcache -v https://img.js.design/assets/stableDiffusion/thumbnail/diffusionImage/641017156a21b6a39f0aa61e.png

执行结果:

3. 清除缓存

清除指定下载的缓存文件,可以执行:certutil.exe -urlcache 下载过的文件 delete

E:\>certutil.exe -urlcache https://img.js.design/assets/stableDiffusion/thumbnail/diffusionImage/641017156a21b6a39f0aa61e.png delete

清除所有文件缓存:

E:\>certutil.exe -urlcache * delete

六、获取错误代码

可以用Certutil来查询在编程开发,或者系统弹框的一些错误的解释。

格式:certutil -error 错误码

E:\>certutil -error 5E:\>certutil -error 0x0000007bE:\>certutil -error 0x8007000e


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/2823.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode100-53最大子数组和

本文基于各个大佬的文章 上点关注下点赞&#xff0c;明天一定更灿烂&#xff01; 前言 Python基础好像会了又好像没会&#xff0c;所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考&#xff0c;写给自己看的&#xff0c;也欢迎大家在评论区指…

当我们想用GPU(nlp模型篇)

在个人设备上“把 GPU 真正用起来”做 NLP&#xff0c;分五步&#xff1a;准备 → 安装 → 验证 → 训练/推理 → 踩坑排查。下面每一步都给出可复制命令和常见错误。 ────────────────── 1. 硬件准备 • 一张 NVIDIA GPU&#xff0c;算力 ≥ 6.1&#xff08…

celery

celery是什么celery是Python开发的简单的、灵活可靠的、处理大量消息的分布式任务调度模块专注于实时处理的异步任务队列同时支持任务调度celery本身不含消息服务&#xff0c;它使用第三方消息服务来传递任务&#xff0c;支持的消息服务有RabbitMQ、Redis、Amazon SQS,celery本…

MeterSphere接口自动化多场景批量运行复制引用

一、场景批量执行 全选&#xff0c;点击任意对号后面的三个冒号图标&#xff0c;可以看到批量处理(批量执行、批量编辑、批量移动、批量复制等)批量编辑&#xff0c;可以对用例等级&#xff0c;状态&#xff0c;责任人&#xff0c;运行环境、标签更改 选择批量更改标签&#xf…

Flutter 小技巧之有趣的 UI 骨架屏框架 skeletonizer

很久没有更新过小技巧系列&#xff0c;今天简单介绍一个非常好用的骨架屏框架 skeletonizer &#xff0c;它主要是通过将你现有的布局自动简化为简单的骨架&#xff0c;并添加动画效果来实现加载过程&#xff0c;而使用成本则是简单的添加一个 Skeletonizer 作为 parent &…

RabbitMQ面试精讲 Day 26:RabbitMQ监控体系建设

【RabbitMQ面试精讲 Day 26】RabbitMQ监控体系建设 在“RabbitMQ面试精讲”系列的第26天&#xff0c;我们将聚焦于RabbitMQ监控体系建设这一关键运维主题。作为消息中间件的核心组件&#xff0c;RabbitMQ一旦出现消息积压、节点宕机或资源耗尽等问题&#xff0c;将直接影响系统…

强化学习中的重要性采样:跨分布复用样本的核心技术

在强化学习中&#xff0c;智能体需与环境交互采集样本&#xff08;轨迹、状态 - 动作对&#xff09;以更新策略。但 “样本分布必须与目标策略分布一致” 的同策略限制&#xff0c;会导致采样效率低下&#xff08;每次策略更新都需重新采样&#xff09;。此时&#xff0c;** 重…

SWMM排水管网水力、水质建模及海绵城市与水环境中的应用

一&#xff1a;SWMM软件及水力建模基础 1.1软件模块结构 1.2建模基础数据的分类及获取方法概述 1.3软件基本功能介绍 1.4 SWMM相较于其他商业软件的优缺点二&#xff1a;管网水质建模基础 2.1数据需求分析 各种SWMM对象的数据需求以及含义 2.2基础数据整理 2.3基础数据的输入 各…

MySQL 50 道经典练习题及答案

目录 一、数据表设计与初始化 1. 数据表结构说明 2. 建表语句 3. 插入测试数据 二、练习题及答案 1. 查询 "01" 课程比 "02" 课程成绩高的学生的信息及课程分数 2. 查询同时存在 "01" 课程和 "02" 课程的情况 3. 查询存在 &qu…

MyCAT分库分表

MyCAT分库分表 前言&#xff1a; 很难评价的软件 尝试通过修改配置文件做到分库分表 你会发现一些很离谱的BUG 或者是主从分离的时候 你也会发现 莫名其妙的BUG ‍ 创建基础环境192.168.3.145192.168.3.159192.168.3.163MyCAT MySQLMySQLMySQL --更改root密码alter user rootlo…

C++开发/Qt开发:单例模式介绍与应用

单例模式是软件设计模式中最简单也是最常用的一种创建型设计模式。它的核心目标是确保一个类在整个应用程序生命周期中只有一个实例&#xff0c;并提供一个全局访问点。笔者白话版理解&#xff1a;你创建了一个类&#xff0c;如果你希望这个类对象在工程中应用时只创建一次&…

学习设计模式《二十三》——桥接模式

一、基础概念 桥接模式的本质是【分离抽象和实现】。 桥接模式的定义&#xff1a;将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。 认识桥接模式序号认识桥接模式说明1什么是桥接通俗点说就是在不同的东西之间搭一个桥&#xff0c;让它们能够连接起来&a…