【实验目的及要求】

实验目的:

学会签发根CA证书,使用根CA证书签发下级证书。

实验要求:

利用OpenSSL提供的命令行工具实现:

  1. 生成根CA密钥对、生成自签名的根CA证书;
  2. 生成普通个人用户的密钥对,并生成证书请求;
  3. 以CA管理员的角色,给上一步生成的证书请求签发个人证书。

【实验环境】

Linux 内核2.6及以上,安装有OpenSSL。

【实验过程】

1)环境准备

1、首先检查系统是否安装openssl,命令行中输入命令

openssl version

如图在命令行中,输出了OpenSSL的版本信息:
(若无版本信息请自行百度安装OpenSSL教程)

2、接着,我们需要准备一个目录放置CA文件,包括颁发的证书和CRL(Certificate Revoke List)。这里我们新建目录 /var/MyCA,然后我们在/var/MyCA下建立两个目录,certs用来保存我们的CA颁发的所有的证书的副本;private用来保存CA证书的私钥匙,同时将private目录权限设置为700(仅自己可读写)。

3、除了生成钥匙,在我们的CA体系中还需要创建三个文件。第一个文件用来跟踪最后一次颁发的证书的序列号,我们把它命名为serial,初始化为01。第二个文件是一个排序数据库,用来跟踪已经颁发的证书。我们把它命名为index.txt,文件内容为空。

第三个文件是OpenSSL的配置文件:
键入命令

gedit openssl.cnf

然后在文件中输入下列内容:

[ ca ]
default_ca = myca[ myca ]
dir = /var/MyCA
certificate = $dir/cacert.pem
database = $dir/index.txt
new_certs_dir = $dir/certs
private_key = $dir/private/cakey.pem
serial = $dir/serialdefault_crl_days= 7
default_days = 365
default_md = md5policy = myca_policy
x509_extensions = certificate_extensions[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = supplied
organizationName= supplied
organizationalUnitName = optional[ certificate_extensions ]
basicConstraints= CA:false

我们需要告诉OpenSSL配置文件的路径,有两种方法可以达成目的:通过config命令选项;通过环境变量OPENSSL_CONF。这里利用config选项。(后面会用到)

2)生成根证书 (Root Certificate)

我们需要一个证书来为自己颁发的证书签名,这个证书可从其他CA获取,或者是自签名的根证书。这里我们生成一个自签名的根证书。首先我们需要往配置文件里面添加一些信息,如下所示,节名和命令行工具的命令req一样。我们把所有必要的信息都写进配置。

[ req ]
default_bits = 2048
default_keyfile = /var/MyCA/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = root_ca_distinguished_name
x509_extensions = root_ca_extensions
[ root_ca_distinguished_name ]
commonName = My Test CA
stateOrProvinceName = HZ
countryName = CN
emailAddress = test@cert.com
organizationName = Root Certification Authority
[ root_ca_extensions ]
basicConstraints = CA:true

3) 生成根的密钥对和根证书

命令:

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

4)生成普通个人用户的密钥对,并生成证书请求

首先生成普通个人用户的密钥对(key文件):
命令:

openssl genrsa -des3 -out  client.key 1024

接着生成普通个人用户的证书请求:
命令:

openssl req -new -key client.key -out client.csr

后面按照提示输入各种信息即可.

5)以CA管理员的角色给普通用户请求签发个人证书

命令:

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

用OpenSSL命令行,来验证一下我们生成的证书:
命令:

openssl verify -CApath certs -CAfile ca.crt client.crt

到此实验完成。

CA证书的签发与认证相关推荐

  1. CA证书的签发流程详情

    一,什么是CA证书: CA证书是电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三 ...

  2. 证书类型、自签CA证书、https双向认证(一篇就懂系列)

    #博学谷IT学习技术支持# 文章目录 1.Linux准备环境 2.证书扩展名 3.自签CA证书 3.1 生成根证书 3.2 生成服务端证书 3.3 生成客户端证书 4.开启https,并校验客户端(双 ...

  3. HTTPS中CA证书的签发及使用过程

    1,HTTPS 简单来讲,HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议就是安全的HTTP,我们知道HTTP是运行在TCP层之上的,HTTPS在 ...

  4. openssl自签名ca证书,以及签发服务端/客户端证书

    网上由很多,但是感觉操作比较复杂,有些签发的证书不可用.现在介绍简单方法.假设已经安装了openssl,已有sudo权限.已经建立路径:/ope/ca,所有操作都在此路径下进行. 1. 准备工作,由于 ...

  5. keytool命令制作CA根证书,签发二级证书

    关于TLS的一些基本信息我这里就不多说了,网上一搜一大堆.这里主要说一下,在tls单向认证里,怎么用keytool命令去制作CA证书,签发二级证书.双向认证也就是照着反方向做一遍就好了. 先附一张简单 ...

  6. CA证书签发系统(web版)

    本次修改主要是考虑到分布式系统中, 以及对操作UI进行修改,添加分布式系统支持. pki-new 2.0 新版本 一个pki证书申请,审核和证书下载安装的管理系统软件,通过调用java自带的工具,将信 ...

  7. CentOS 7 CA证书服务器搭建

    CA认证概述 证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构.是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性 ...

  8. 爬虫之使用verify参数忽略CA证书

    爬虫之使用verify参数忽略CA证书 [CA证书是https中认证的一个重要的证书] 在使用浏览器上网的时候,有时能够看到下面的提示(2018年10月之前的12306网站): 原因:该网站的CA证书 ...

  9. 实战:搭建CA认证中心,使用CA证书搭建HTTPS

    CA认证中心服务端:xuegod63.cn                         IP:192.168.0.61 客户端                  :xuegod64.cn      ...

最新文章

  1. .Net Core 之 Ubuntu 14.04 部署过程
  2. 6421B Lab5 路由和远程访问的配置与故障排除
  3. java web空指针,java - Web服务中的Java空指针异常@autowired [重复] - 堆栈内存溢出
  4. Tomcat SSL Configuration
  5. python采用强制自动缩进使代码具有极佳的可读性_Python的详细介绍
  6. 【大数据部落】用关联规则和聚类探索药物配伍规律
  7. 不符合C语言语法常量,C语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合C语言语法的表达式?...
  8. 《数学之美》读书笔记
  9. 冰箱味道很臭?那你真的该学学这些除臭妙招
  10. React-native项目使用逍遥游模拟器运行
  11. 带T和Z的时间字符串转Long型
  12. hive SQL 过滤不含数字的字段
  13. 计算机考研复试面试问题总结和回答
  14. GYM 100827 A.Runes(水~)
  15. OpenCV图像处理-区域分割-形态学操作应用
  16. 【Mask scoring RCNN】实现目标检测
  17. CodeBlocks如何将英文环境改为中文
  18. 坚持#第89天~胡晨晨会给予我力量!
  19. c语言 在有n个元素的数组s中查找书名为a的书,问题:单选(2分) 已定义float a[5];,则数组a可引用的元素有( )。...
  20. 关于在微软学生资源中心下载软件

热门文章

  1. orecal基本连接数据库简介
  2. linux 程序怎么执行文件格式,linux汇编之——(1)ELF:Linux可执行程序文件格式
  3. DM9000AEP/CEP 技术文件
  4. 计算机以来服务或组无法启动,Win10电脑碰到“依赖服务或组无法启动”问题怎么解决?...
  5. :first-child和:first-of-type的区别
  6. linux 打乱一个文本文件的所有行 命令
  7. 啊,整理整理收藏的PS3游戏
  8. Eplan P8 窗口宏/符号宏、页宏、宏值集的创建与插入 <四>
  9. 计算机考试没有输入法怎么办,我的电脑没有输入法怎么办
  10. c语言excel存储文件格式,C语言写excel文件(csv格式)