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

2023-11-19

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

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

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

并且需要安装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 GMT
    Not 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、客户端证书建立完成

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • L298N 小车应用(附代码)

    L298N L298N是目前智能小车应用很广泛的价格也比较便宜的电机驱动 用来驱动直流电机 L298N 输出A 输出B 分别接两个直流电机 电机两根线随便接 如果发现两电机方向是反着的 就调换下接线就ok了 12V供电 这个是外部电源为驱动
  • kubernetes集群实战——暴露service供外部访问的4种方法(NodePort、LoadBalancer、ExternalName和分配公有IP)

    1 service介绍 Service可以看作是一组提供相同服务的Pod对外的访问接口 借助Service 应用可以方便地实现服务发现和负载均衡 service默认只支持4层负载均衡能力 没有7层功能 可以通过Ingress实现 servi
  • android studio3.1调试

    快捷键 ctrl alt left或者ctrl alt right 回退 前进 双击快捷键 shift 全局搜索 快捷键 shift F9 开始调试 快捷键 F6 单步执行程序 快捷键 F5 单步执行程序 遇到方法时进入 快捷键 F8 调到
  • 机器学习算法——Kmeans

    1 k mean算法的原理 1 选取K个点做为初始聚集的簇心 2 分别计算每个样本点到K个簇核心的距离 这里的距离一般取欧氏距离或余弦距离 找到离该点最近的簇核心 将它归属到对应的簇 3 所有点都归属到簇之后 M个点就分为了K个簇 之后重新
  • element 时间日期选择器限制选择范围为7天

    template 部分
  • 编写递归算法,计算二叉树叶子结点的数目。

    编写递归算法 计算二叉树叶子结点的数目 编写递归算法 计算二叉树叶子结点的数目 include stdio h 包含 getchar scanf printf include malloc h malloc 动态申请空间 函数 二叉树 结点
  • 服务器的地址信息,服务器地址信息

    服务器地址信息 内容精选 换一换 可以一次添加一台服务器 也可以一次添加同一网段连续IP的多台服务器 进入任务中心可以查看状态信息 如果状态为成功 说明服务器已添加成功 如果要自定义裸金属服务器的DNS服务器信息 需要将裸金属服务器网络设置
  • 《算法导论》笔记(15) 最小生成树 部分习题

    习题23 1 11 给定图G和一棵最小生成树T 假设减少了位于T之外的某条边的权重 因为T内的边 是连接所有结点的权重最小的 那么首先将T外的减少权重的边 u v 加入T 然后在u v中寻找所有的路径 去掉路径中权重最大的边 习题23 2
  • 5、H3C交换机ACL配置

    创建 IPv4 高级 ACL 并进入 IPv4 高级 ACL 视图 switch acl number acl number name acl name 注 IPv4 高级 ACL 的编号范围为3000 3999 创建规则 switch a
  • 无法打开计算机开始菜单,开始菜单,教您开始菜单无法打开

    win10系统开始菜单不能使用该如何是好呢 最近有位用户反映在使用win10系统的过程当中 发现开始菜单没莫名其妙的就出现了打不开的情况 这该怎么办呢 不要着急 小编这就来将处理开始菜单打不开这个问题的办法来分享给你们 我们在使用电脑的过程
  • 使用Docker Compose搭建Redis主从集群

    一 本次环境使用到了docker docker compose redis 二 我们搭建的主从集群结构如图 共包含三个节点 一个主节点 两个从节点 这里我们会在同一台虚拟机中开启3个redis实例 模拟主从集群 信息如下 IP PORT 角
  • 超越nnFormer!UNETR++:高效准确的3D医学图像分割

    UNETR Delving into Efficient and Accurate 3D Medical Image Segmentation 论文链接 https arxiv org abs 2212 04497 代码链接 https g
  • Spring Boot 配置文件这样加密,才足够安全!

    1 前景 在使用Springboot时 通常很多信息都是在application yml中直接明文配置的 比如数据库链接信息 redis链接信息等等 但是这样是不安全的 所以需要对敏感数据进行加密 这样防止密码泄露 Jasypt这个库为我们
  • Go开发命令行程序指南

    近期在Twitter上看到一个名为 Command Line Interface Guidelines 的站点 1 这个站点汇聚了帮助大家编写出更好命令行程序的哲学与指南 这份指南基于传统的Unix编程原则 2 又结合现代的情况进行了 与时
  • 封装的几种形式

    你说的时cpu的封装吗 供你参考 集成电路芯片的封装形式 自从美国Intel公司1971年设计制造出4位微处a理器芯片以来 在20多年时间内 CPU从Intel4004 80286 80386 80486发展到Pentium和Pentium
  • 基于Jenkins实现Docker应用的持续集成与部署

    先决条件 1 服务器部署安装有docker 在docker应用开发中最常见的就是开发Dockerfile文件 可以使用代码仓库来管理它 而在企业私有开发环境中是无法访问公有代码仓库 如Github 的 这时可以搭建私有代码仓库 部署安装sv
  • 堆排序专题-把一个数组变成大根堆的两种方式和根据大根堆来实现对数组的排序,

    什么是堆排序 堆排序 Heap Sort 是一种基于二叉堆数据结构的排序算法 它的基本思想是将待排序的数组构建成一个大根堆或小根堆 然后依次将堆顶元素与堆尾元素交换 并重新调整堆 直到整个数组有序 堆排序的时间复杂度为O nlogn 是一种
  • python无人机路径规划算法_RRT算法在Python中的实现,快速,拓展,随机,树

    基于智能优化与RRT算法的无人机任务规划方法研究 博士论文 基于改进人工势场法的路径规划算法研究 硕士论文 import matplotlib pyplot as plt import random import math import c
  • STM32基于GPRS模组使用HTTP协议单片机固件在线升级(IAP)

    一 前言 最近有朋友让我帮忙开发基于GPRS模组的单片机固件在线升级 这样的远程升级就两种方式 1 自己定义协议 服务器端进行bin文件拆包 一包包下发 优点 可以每包一校验还可以断点续传 不需要考虑Flash学入占用的时间 缺点 需要服务
  • https网络编程——如何利用中继证书(凭证)建立客户端证书

    参考 如何利用中继证书 凭证 建立客户端证书 地址 https qingmu blog csdn net article details 108226592 spm 1001 2014 3001 5502 目录 建立客户端证书的前提是要建立