https网络编程——如何利用中继证书(凭证)建立客户端证书

参考:如何利用中继证书(凭证)建立客户端证书
地址:https://qingmu.blog.csdn.net/article/details/108226592?spm=1001.2014.3001.5502

目录

  • 建立客户端证书的前提是要建立中继证书
  • 建立客户端证书的具体步骤
    • 1、建立一个目录,存放所有客户端证书有关的资料
    • 2、填写Open SSL的配置文件
    • 3、在客户端凭证目录产生凭证的私钥
    • 4、在服务器凭证目录产生服务器凭证的凭证签发申请档
    • 5、使用中继凭证去签发客户端凭证的凭证签发申请档, 产生客户端的凭证
    • 6、检查签发的中继凭证是否无误.
    • 7、确认服务器凭证的完整性, 需要做完整的串链检查, 需要使用含有根凭证的凭证串链.
    • 8、产生服务器凭证的凭证串链.
    • 9、客户端证书建立完成

建立客户端证书的前提是要建立中继证书

自建根证书详解
中继证书建立详解

并且需要安装openssl库:

sudo apt-get install openssl

建立客户端证书的具体步骤

本实验是在根证书和中继证书的前提下完成的,可参考根证书的建立和中继证书的建立

1、建立一个目录,存放所有客户端证书有关的资料

输入命令(注意路径哦):

mkdir client
cd client

在这里插入图片描述

2、填写Open SSL的配置文件

文件名:openssl_csr.cnf
路径:client目录下

具体内容:

[ req ]
# req 工具需要的參數.
default_bits       = 2048
distinguished_name = req_distinguished_name
string_mask        = utf8only
default_md         = sha256[ req_distinguished_name ]
# 产生证书时要输入的资料说明.
countryName            = Country Name (2 letter code)
stateOrProvinceName    = State or Province Name
localityName           = Locality Name
0.organizationName     = Organization Name
organizationalUnitName = Organizational Unit Name
commonName             = Common Name
emailAddress           = Email Address

在这里插入图片描述

3、在客户端凭证目录产生凭证的私钥

文件名:client.key.pem
路径:client目录下

输入命令:

openssl genrsa -aes256 -out client.key.pem 4096
会提示输入私钥的密码, 例如是 helen123
Enter pass phrase for server.key.pem:helen123
再次输入密码:
Verifying - Enter pass phrase for server.key.pem:helen123

在这里插入图片描述
更改私钥的权限为只读:

chmod 400 client.key.pem

在这里插入图片描述

4、在服务器凭证目录产生服务器凭证的凭证签发申请档

输入命令:

openssl req -config openssl_csr.cnf -new -sha256 -key client.key.pem -out client.csr.pem
会提示输入服务器证书的私钥的密码, 也就是 helen123
Enter pass phrase for server.key.pem:helen123# 接着输入证书拥有者的信息
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank For some fields there will be a default value,
If you enter '.', the field will be left blank.# 所在国家的缩写, 2 个字母
Country Name (2 letter code) []:AU
# 所在的州或省.
State or Province Name []:New South Wales
# 所在的城市.
Locality Name []:Sydney
# 所在的公司.
Organization Name []:Helen
# 所在的公司的单位.
Organizational Unit Name []:Helen
# 证书名称
Common Name []:helen@personal
# 邮箱
Email Address []:helen@personal

在这里插入图片描述

5、使用中继凭证去签发客户端凭证的凭证签发申请档, 产生客户端的凭证

在中继证书目录下操作.

cd ../intermediate

在这里插入图片描述
签发凭证签发申请档, 有效期限是 3650 天.
输入命令:

openssl ca -config openssl_intermediate_ca.cnf -extensions client_cert -days 365 -notext -md sha256 -in ../client/client.csr.pem -out ../client/client.cert.pem
# 会提示需要输入根凭证的私钥密码, 也就是 bob123
Enter pass phrase for /ca/intermediate/private/intermediate_ca.key.pem:bob123# 接著会显示要签发的凭证签发申请档的内容.
Check that the request matches the signature
Signature ok
Certificate Details:
...
# 并询问是否签发, 输入 y
Sign the certificate? [y/n]:y
# 以及询问是否纪录签发的凭证到资料库 (index.txt, serial), 输入 y
1 out of 1 certificate requests certified, commit? [y/n]y

在这里插入图片描述
变更签发的凭证的存取权限为只读
输入命令:

chmod 444 ../client/client.cert.pem

在这里插入图片描述

6、检查签发的中继凭证是否无误.

输入命令:

openssl x509 -noout -text -in ../client/client.cert.pem

在这里插入图片描述

# 使用的算法
Signature Algorithm: sha256WithRSAEncryption# 公钥的长度
Subject Public Key Info:Public-Key: (4096 bit)# 有效日期.
Validity:Not Before: Aug  4 23:59:15 2017 GMTNot After : Aug  4 23:59:15 2018 GMT# 主旨 (Helen 的资料).
Subject: C=AU, ST=New South Wales, O=Helen, OU=Helen,CN=helen@personal/emailAddress=helen@local
# 签发者 (Bob 的资料).
Issuer: C=US, ST=California, O=Bob Ltd, OU=Bob Ltd Certificate Authority, CN=Bob Ltd Intermediate CA/emailAddress=bob@local

7、确认服务器凭证的完整性, 需要做完整的串链检查, 需要使用含有根凭证的凭证串链.

输入命令:

openssl verify -CAfile chain/chain.cert.pem ../client/client.cert.pem

显示 OK 表示正确.
…/client/client.cert.pem: OK

在这里插入图片描述

8、产生服务器凭证的凭证串链.

回到客户端证书目录里

cd ../client

在这里插入图片描述
产生证书串链:

cat client.cert.pem ../intermediate/chain/chain.cert.pem > client_chain.cert.pem

变更串链的读取权限为只读:

chmod 444 client_chain.cert.pem

在这里插入图片描述

9、客户端证书建立完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019.2.4 nfs原理和安装实验

NFS 访问一个本地文件还是NFS共享文件对于客户端而言都是透明的,当文件打开的瞬间,内核会作出一个决定,如果是本地文件内核会将本地NFS共享文件内核会将NFS共享文件的所有引用传递给——》NFS客户端枢中 NFS客户端是通过TCP/IP协议及模块向NF…

形容人的内核是什么意思_成语雪泥鸿爪是形容什么的?雪泥鸿爪什么意思?蚂蚁庄园2020年12月10日答案...

斑马线和斑马什么关系?大家都知道斑马和斑马线,但是两者之间有什么关系?蚂蚁庄园12月10日提到了这个问题,我们一起来看看正确答案吧。问题:斑马线和斑马有什么关系?答案:横线酷似斑马纹答案解析…

.Net 2.0里有一个有用的新功能:迭代器

下面内容节选至MSDN2005。迭代器(C# 编程指南) 迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使您能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。您只需提供一个迭代器,即…

MySQL 服务器变量 数据操作DML-视图

原文:MySQL 服务器变量 数据操作DML-视图SQL语言的组成部分 常见分类: DDL:数据定义语言 DCL:数据控制语言,如授权 DML:数据操作语言 其它分类: 完整性定义语言:DDL的一部分功能约束约束&#x…

kafka内存不断增加_为什么 Kafka 能这么快的 6 个原因

无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,下面我们就聊聊 Kafka 快…

https网络编程——DNS域名解析获取IP地址

参考:DNS域名解析 地址:https://qingmu.blog.csdn.net/article/details/115825036?spm1001.2014.3001.5502 1、原理 我在在通过域名解析获取IP的过程中一般使用的是DNS域名解析。 DNS协议是一种应用层协议,他是基于UDP来实现的。 2、代码…

C#桌面时钟

使用C#制作的桌面时钟,提供闹钟功能(虽然很简陋)、万年历功能(包含农历)源码:http://www.cnblogs.com/Files/shiweifu/MyClock.rar截图:适合初学者研究 转载于:https://www.cnblogs.…

小a与黄金街道(欧拉函数)/**模运算规则总结*/

链接:https://ac.nowcoder.com/acm/contest/317/D 来源:牛客网 题目描述 小a和小b来到了一条布满了黄金的街道上。它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最后得到的黄金…

堆栈认知——逆向IDA工具的基本使用

参考:逆向-IDA工具的基本使用 地址:https://qingmu.blog.csdn.net/article/details/118862881 目录1、文件的打开与关闭2、窗口介绍:图形 文本 其他窗口2.1、图形界面:2.2、文本界面:2.3、反汇编窗口2.4、 十六进制窗口…

堆栈认知——栈溢出实例(ret2text)

参考:栈溢出实例–笔记一(ret2text) 地址:https://qingmu.blog.csdn.net/article/details/119295954 目录1、什么是栈溢出?2、栈结构3、栈溢出需要解决的问题3.1、解决如何跳转的问题3.2、跳转到哪里去?4、…

堆栈认知——栈溢出实例(ret2shellcode)

参考:栈溢出实例–笔记二(ret2shellcode) 地址:https://qingmu.blog.csdn.net/article/details/119303513 目录1、栈溢出含义及栈结构2、ret2shellcode基本思路3、实战一下3.1、二进制程序如下3.2、分析调试查看栈3.3、编写payloa…

Glusterfs初试

Gluster的模式及介绍在此不表,这里只记录安装及配置过程。 1.整体环境 server1 : gfs1.cluster.com server2 : gfs2.cluster.com Client: 2.安装Gluster 下载软件https://access.redhat.com/downloads/content/186/ver3/rhel---7/3.4/x86_64/product-software 下…

堆栈认知——堆简介

参考:Linux笔记–堆简介 地址:https://qingmu.blog.csdn.net/article/details/119510863 目录1、前言2、堆的由来3、Linux中堆简介4、堆分类4.1、请求堆4.2、释放堆5、内存分配背后的系统调用6、堆相关数据结构7、堆的申请8、调试验证1、前言 当前针对各…

如何为 Horizon View 配置 VMware VSAN?

原文:http://myvirtualcloud.net/?p5440注明:本文内容基于 VMwareVSAN beta 版本撰写,请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。我已经在前面的文章中讨论了VSAN 给 Horizon View 带来的益处&#xf…

配置vscode远程免密登入Linux服务器

视频教程:https://www.bilibili.com/video/BV1s64y167cM?vd_sourcecc0e43b449de7e8663ca1f89dd5fea7d 参考:配置vscode远程免密登入Linux服务器 地址:https://blog.csdn.net/weixin_54178481/article/details/123977675?spm1001.2014.3001.…

Wss 3.0安装指南(一)

Wss 3.0安装指南(一) "基本" 模式 WSS3.0的安装可分为独立服务器安装和服务器场安装,前者是将所有的服务和应用安装在一台Server 上,后者则是…

智能五子棋基本思路

前些天闲时写的,在学数据结构的时拿来练手的.没技术含量,最有技术含量的AI部分,我是看别人(园子里叫二十四生的)的算法改的.刚弄了一下午小程序弄不过去,头疼,现无聊的紧,闲着发着玩.当消遣主要发下AI核心算法.有兴趣的同学用VB,VC.VC#都可以一起做着玩.保持对编程的兴趣.其它没…

webpack 4.0 配置文件 webpack.config.js文件的放置位置

一般webpack.config.js是默认放在根目录的,不在根目录的时候需要在package.json中制定位置,我的配置文件目录是config/webpack.config.js,在package.json文件中的配置为: "scripts": { "build": "webpack --mode p…

PowerShell远程管理Windows Server(2):公网访问【web形式】

*此文章只适合于windows server 2012版本以上;Powershell Web Access需要两个步骤才能使用:一、安装powershell web access功能;二、配置powershell web access;只要在服务器上启用powershell web access功能,即可通过…

POJ 3090 Visible Lattice Points 【欧拉函数】

<题目链接> 题目大意&#xff1a; 给出范围为(0, 0)到(n, n)的整点&#xff0c;你站在(0,0)处&#xff0c;问能够看见几个点。 解题分析&#xff1a;很明显&#xff0c;因为 N (1 ≤ N ≤ 1000) &#xff0c;所以无论 N 为多大&#xff0c;(0,1),(1,1),(1,0)这三个点一定…