10.openssl证书和CA功能概述

10.1 证书和CA功能概述

10.1.1 证书存在价值

数字证书正是为了建立实体跟密钥对之间的联系而存在,证书验证中心CA充当了确认特定实体跟密钥对之间关系的确认人,并且通过用自己的私钥对这些确认信息和公钥一起签名来保证其可信性和不可改变性。

10.1.2 证书生命周期

a.证书申请:所谓证书生命周期是指从证书申请到证书被吊销的整个过程,这中间涉及证书申请、颁发、使用管理方面的问题。

b.证书颁发

c.证书验证

d.证书吊销:一是从CA的证书数据库中删除被吊销的证书;而是对外公布被撤销的证书信息,如序列好等,具体来说就是生成和公布证书吊销列表CRL。

e.证书吊销

f.证书过期

10.1.3 证书的封装类型

a.X509证书

X509证书包含的内容主要是用户信息、证书序列号、签发者、有效期、公钥、其他信息及CA的数字签名。

b.PKCS#12证书

c.PKCS#7证书

10.1.4 三种不同封装格式证书


证书类型

证书内容

使用范围

X509

用户信息、公钥、序列号、CA签名和其他证书信息

用户和被验证用户出于同一个CA域内的验证模型,

用户不需要考虑存储的问题


PKCS#12证书

X509证书和其相应私钥

需要同时使用X509证书和气私钥的应用

PKCS#7证书

多个X509证书和CRL

需要同时使用多个用户证书和CRL的验证过程

或者其他应用

10.1.6 openssl证书和CA指令概览

10.2 申请证书

a.功能概述和指令格式

req指令一般来说应该是提供给证书申请用户的工具,用来生成证书请求以便交给CA验证和签发证书。

备注:你只要根据自己的需要选取其中部分即可。

b.输入和输出格式选项inform,outform和keyform


参数

描述

inform

支持PEM编码和DER编码

outform

输出选项out的证书请求或自签名证书的编码格式

keyform

密钥输入选项key制定的密钥编码格式

PEM\DER\PKCS#12\Netscape

c.输入和输出文件选项in,out,key和keyout

d.输入和输出口令选项passin和passout

e.指令操作类型new\newkey\nodes和x509

备注:

所谓自签名根证书,就是只用一堆密钥对自己相应的公钥生成的证书请求进行签名而颁发证书,这样,证书申请人和签发人都是同一个,所以陈伟自签名根证书。

f.属性设置选项digest,subj,days和set_serial

digest选项指定了生成证书请求或者自签名根证书时使用的信息摘要算法,该信息摘要算法一般在生成数字签名的时候使用。

subj选项直接从指令行指定证书请求的主体名称,如果没有出示该选项,那么req指令将会根据配置文件特征名称字段的设定提示用户输入必要的信息。

g.配置文件选项config,extensions和requxts

config选项指定了req指令在生成证书请求的时候使用openssl配置文件,改文件的最好例子是openssl.cnf。

extensions选项指定了生成自签名根证书的时候使用的扩展字段,其参数为openssl配置文件中某个字段名。

reqexts选项指定了生成证书请求时使用的扩展字段,该字段参数也是配置文件中的某个字段名。

h.属性格式化选项asn1-kludge,newhdr和utf8

newhdr选项使用后将会在输出的PEM编码的证书请求开始和结束增加NEW标记字符串。

i.输出内容选项text,reqopt,pubkey,noout和subject

j.输出字符编码选项nameopt

nameopt选项指定了如何显示主体名称和签发这名称,主要用于显示名称中不同编码的内容,比如UTF8编码等。

k.输出字符编码选项nameopt

l.证书请求数字签名验证选项verify

m.其他选项rand,batch和verbose

rand选项指定了生成密钥对或者其他一些操作需要的随机数种子文件。如果没有使用rand选项,指令会从其他可能得到的资源取得随机数种子数据。

batch选项将不再提示用户输入生成证书请求需求的用户信息,而是直接从openssl配置文件特征名称字段读取默认值,如果没有默认值,则不填写该值域。

10.2.2 生成证书密钥

a.证书请求中使用RSA密钥

RSA密钥是目前证书中最经常使用的密钥类型,这一步是因为其既可以支持密钥交换,有可以支持数字签名的特性。

b.证书请求中使用DSA密钥

DSA密钥专门用于数字签名的密钥,当你要申请一个用于数字签名的证书的售后,就可能需要使用这种类型的密钥。

10.2.3 申请用户证书

10.2.4 申请CA证书

10.3 建立CA

10.3.1 CA服务器的基本功能

CA服务器是一个应用程序,他从技术上实现符合PKI和X509等相关证书的签发和管理功能。

基本功能:接收申请证书的请求、审核证书请求、签发证书、发布证书、吊销证书、生成和发布证书吊销列表(CRL)及证书库管理。

a.接受证书请求

b.审核证书请求

c.签发证书

d.发布证书

e.吊销证书

f.生成和发布CRL

g.证书库管理

10.3.2 CA服务器的基本要素

至少具备以下一些要素

a.具备接收证书请求、审核证书请求、签发证书、发布证书、吊销证书、生成和发布CRL和证书库管理。

b.一个CA证书和一个其相应的私钥,可能是自签名的根证书,也可能是向另一个CA申请的证书

c.证书数据库,用于存储证书(有时候还包括私钥)

10.4 CA操作

10.4.1 ca指令介绍

a..功能概述和指令格式

b.证书配置文件选项config,name,extensions,extfile和policy


参数

功能

config

extensions

extfile

c.特殊的证书请求输入选项ss_cert和spkac

ss_cert选项允许用户输入一个自签名的证书作为申请证书的证书请求,ca指令将会从这个字签名证书中提取用户信息和公钥用于签发最后的用户证书。

spkac选项允许用户输入一个SPKAC格式文件作为申请证书请求的资料,spkac。

d.证书有效期选项startdate,days和enddate

这三个都是设置证书有效日期的选项,分别是设置证书的生效时间、证书的到期时间及有效时间。

startdate设置证书的生效时间,其参数格式是"YYMMDDHHMMSSZ",每两位代表一个时间变量。

days选项设置证书的有效天数。所谓有效天数,也就是从证书生效的时间到证书到期的时间之间的天数。

enddate选项的参数格式跟startdate选项一样,用来设置证书的到期时间。

e.证书内容选项subj,preserveDN,noemailDN,md和msie_back

证书的主题名称(subject name,也称为特征名称),由证书请求中的主体名称决定。

preserveDN选项使指令在签发证书的时候让证书主体名称内的各项内容顺序跟证书请求中的顺序保持一致。

f.CA证书和私钥选项cert,keyfile,keyform,passin和key

在签发证书的时候,需要使用CA的证书和私钥对用户的证书请求进行签发证书操作。

g.证书吊销选项revoke,crl_reason,crl_hold,crl_compromise和crl_CA_compromise

revoke选项让你能够轻松地吊销一个证书,其参数就是你需要吊销的证书文件名,revoke选项吊销证书应该是PEM编码的X509证书。


吊销参数

代表意义

unspecified

没有定义

keyCompromise

私钥泄密。证书主体的私钥被认为已经泄密

CACompromise

CA私钥泄密。CA的私钥被认为已经泄密,

一般在吊销CA证书的时候使用这个参数


AffiliationChanged

关系改变。证书已经被新的证书取代

superseded

已被取代。证书已经被新的证书取代

cessationOfOperation

操作停止。证书已经不再需要

certificationHold

证书冻结

temoveFromCRL

从CRL删除。仅用于增量CRL,

表示将该证书已经过期或者冻结状态释放.

h.CRL生成选项gencrl,crldays,crlhours和crlexts

执行完证书吊销操作后,证书库中相应的证书记录会更新,但是,对于离线的应用验证。

i,证书管理选项status和updatedb

status选项用来查看证书库中制定证书的状态,比如是否有效、吊销或者过期等。

updatedb选项用来更新文本数据库的证书状态,他主要用来更新证书库中已经过期的证书的状态信息。

j.notext,batch和verbose选项

10.4.5 建立一个多级CA

a.任务概述

技术工作包括:

*使用req指令生成一个自签名根证书作为RootCA的证书,配置RootCA的配置文件

*使用req指令生成一个CA证书请求,并使用RootCA的证书签发请求形成SubCA的证书,配置SubCA的配置文件。

*使用req指令生成一个证书请求,并使用SubCA的证书签发请求形成用户证书B

*使用req指令生成一个证书请求,并使用RootCA的证书签发该请求形成用户证书A.

b.建立RootCA

建立RootCA技术上抽象的任务有三个部分:建立一个CA目录结构、生成一个字签名跟证书和修改配置文件。

c.建立SubCA

*建立SubCA证书目录

*生成SubCA密钥对和证书请求

*使用RootCA签发SubCA的证书

*设置SubCA的证书和私钥文件

*设置SubCA的配置文件

d.签发用户证书A

用户证书A是RootCA签发的普通用户证书,生成一个用户证三部分:生成密钥对、生成证书请求及签发证书

e.签发用户证书B

用户证书B的申请和签发跟用户证书A的申请和签发基本相同。

10.5 使用证书

10.5.1 X.509证书

a.X509指令功能概述和格式

事实上,还有很多子选项在这里没有一一列出,由此可见该指令的功能之强。

b.输入和输出格式选项inform,outform,keyform,CAform和CAkeyform

c.输入和输出选项in,out,CA和CAkey

d.输入口令选项passin

passin参数给出了当使用signkey输入私钥文件时需要提供的口令字符串。

e.输出显示内容


内容

参数

serial

选项显示证书的序列号

hash

HASH值

subject

显示证书的所有者信息

issuer

显示证书的签发者信息

email

显示证书中的E-mail地址

purpose

显示证书的签发用途

modulus

显示证书RSA密钥的模数

fingerprint

显示证书的指纹信息

ocspid

显示证书使用者和公钥的OCSP摘要值

startdate

显示证书的有效时间

enddate

显示到期时间

pubkey

显示证书里面的公钥

C

输出证书的C语言编码格式

noout

屏蔽输出编码格式的证书或者证书请求

f.输出证书更加灵活的内容的选项text和certopt

g.证书信任设置选项trustout,addtrust,clrtrust,addreject,clrreject,setalias和alias

h.证书显示名称格式选项nameopt

i.验证证书是否过期选项checkend

j.信息摘要算法选择选项md5、md2、sha1和mdc2

10.5.2 CRL

a.crl指令功能概述和格式

b.输入和输出格式选项Inform和outform

c.输入和输出选项in和out

d.输出显示内容选项hash,issuer,noout,text,lastupdate,nextupdate和date

hash选项显示CRL文件中CA签名的HASH值

issuer选项显示CRL文件签发这信息

noout选项要求指令不输出编码CRL的内容

text选项要求指令输出CRL文件的课理解的形式

lastupdate是CRL文件最近更新时间

nextupdate是CRL下次更新时间

e.输出字符编码选项nameopt

nameopt选项指定了如何显示主体名称和签发者名称,主要用于显示名称中不同编码内容。

f.CA文件和目录选项CAfile和CApath

CAfile指定一个CA证书文件,该CA证书用于核实CRL中签名是否正确和有效。

CApath则告诉指令从一个目录中查找有效的CA证书,此目录必须是标准证书目录,所谓标准目录。

10.5.3 OKCS#12证书

a.pkcs12指令功能概述和格式

b.输入和输出文件选项in和out

c.输入和输出口令选项passin,passout,password

d.输出内容选项noout,clcerts,cacerts,nocerts,nokeys和info

noout: 指令不要输出任何私钥和证书信息到输出文件中

clcerts: 只输出客户证书(不是CA证书)到输出文件中

cacerts: 输出CA证书到输出文件中

nokeys: 指令不要输出私钥到输出文件中

info: 指令输出一些其他PKCS#12证书文件相关的信息。

e.加密算法选项des,des3,idea,aes128,aes192,aes256和nodes

f.nomacver和twopass

nomacver选项告诉指令在读取PKCS#12证书之前,不需要对文件进行MAC的完整性验证

twopass选项告诉指令提示输入完整性和加密需要的密码源。

g.创建PKCS#12证书选项export

j.证书内容输入选项inkey和certfile

i.证书别名选项name和caname

j.证书加密算法选项descert,keypbe和certphe

k.密钥用途选项keyex和keysig

keyex选项指定密钥和证书密钥交换

keysig则指定密钥和证书用于数字签名。

l.其他选项chain和rand

chain选项告诉指令建立一个完整用户证书的证书链保存在PKCS#12文件中

随机数文件选项rand提供了产生随机数的参考种子文件。

10.5.4 PKCS#7证书

a.crl2pkcs7指令功能概述和指令格式

b.输入和输出格式选项inform和outform

c.输入和输出选项in,out和certfile

d.不包含CRL的PKCS#7证书选项nocrl

pkcs7指令功能概述和指令格式

a.输入和输出格式选项inform和outform

b.输入和输出选项in和out

c.输出显示内容选项ptint_certs,text和noout

10.6 验证证书

10.6.1验证证书的过程:

*确认证书内容是正确和完整的,没有被串改,CA签名正确的

*确认证书有效的,在有效内并且没有被吊销

*确认CA证书是可以被信任的证书,如果CA证书不是根证书

*通过与用户交互,基于证书中的公钥和公钥密钥算法确认用户的身份。

10.6.2 verify指令介绍

a.CA证书选项CApath和CAfile

CApath选项用来指定我们的信任的CA的证书存放目录

CAfile选项用来指定我们信任CA证书文件,其中可以包含多个CA证书。

b.证书用途选项purpose

c.验证选项issuer_checks,crl_check,crl_check_all和ignore_critical

issuer_checks选项告诉指令输出在查找签发这证书过程中的详细信息,从而可以知道每个候选签发者证书被拒绝的原因

crl_check选项告诉指令检查被验证证书的CRL,如果不幸CRL中存在被验证证书的序列号,则证书将不能通过验证。

crl_check_all选项告诉指令检查证书链中所有证书的CRL,即不仅仅要对被验证证书是否被吊销进行验证,还要对整个证书链中其他证书是否被吊销进行验证。

ignore_critical选项告诉指令可以忽略一些比较小的扩展项。

6.verbose:指令将把验证过程中的所有详细过程输出

7.verify指令验证错误诊断代码

10.6.3 在线证书状态服务协议指令ocsp

a.功能概述和指令格式

b.输入和输出选项out,reqout,respout,reqin和respin

c.输出内容选项req_text,resp_text和text

d.证书相关选项issuer,cert和serial

e.请求相关signer,signkey,nonce和no_nonce

备注:nonce使用摘要算法生成跟时间相关的随机数,为了防止重放攻击等行为的发生。

f.OCSP响应器地址选项host,path和url

g.响应验证证书选项CAfile,CApath,verify_certs,trust_other和VAfile

h.响应策略noverify,no_signature_verify,no_cert_verify,no_cert_checks,no_intern,no_chain,validity_period和status_age

i.OCSP服务器选项index和CA

index选项是否在指令中已经运行在OCSP服务器的模式下。

OCSP响应其就是为了处理OCSP请求的。

h.OCSP服务器运行方式选项port和nrequest

原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/8407144.html

时间: 2024-10-12 22:36:10

10.openssl证书和CA功能概述的相关文章

ArcGIS 10.3 架构与新增功能概述

2014年12月10日,ArcGIS 10.3正式发布,新增了些功能,这里用思维导图大致绘制一下整体架构,便于索引记忆-- 点击看大图 源文件下载[百度云]:http://pan.baidu.com/s/1hqvh74w 推广链接 沈阳金建数字城市软件有限公司地理信息解决方案提供商:http://www.jjgis.com.cn 汉威电子官方微店地址:http://weidian.com/?userid=316021702#rd

使用OpenSSL 自建CA 以及颁发证书

OpenSSL是套开放源代码的软件库包,实现了SSL与TLS协议.其主要库是以C语言所写成,实现了基本的加密功能. OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows.它也提供了一个移植版本,可以在IBM i(OS/400)上运作. 此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA

使用OpenSSL创建私有CA、签署证书

OpenSSL工具包是Linux上SSL v2/v3和TLS v1协议的实现方式之一,并建提供了常用的加密解密功能. OpenSSL主要由三部分组成: 1:libcrypto:加密库,主要用来实现加密.解密的功能库 2:libssl:实现SSL服务器端功能会话库 3:openssl命令行工具:/usr/bin/openssl 本文仅是介绍如何通过openssl命令创建私有CA,以及如何申请证书.签署证书等过程. 证书主要包含的就是拥有者自身的属性信息.公钥以及CA的签名,核心就是用户的公钥.服务

https学习笔记三----OpenSSL生成root CA及签发证书

在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root CA及签发子证书.学习主要参考官方文档:https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html# 一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备

使用 OpenSSL 创建私有 CA:3 用户证书

OpenSSL 创建私有 CA 三部曲:使用 OpenSSL 创建私有 CA:1 根证书使用 OpenSSL 创建私有 CA:2 中间证书使用 OpenSSL 创建私有 CA:3 用户证书 在前文<使用 OpenSSL 创建私有 CA:2 中间证书>中我们介绍了如何创建中间证书,并生成证书链.本文我们将介绍如何为应用生成用户证书(web 站点的 ssl 证书),并把证书部署到应用服务器上和客户端上.说明:本系列文章的演示环境为 Ubuntu 18.04,OpenSSL 的版本为 1.1.0g.

加密、解密,以及OpenSSL建立私有CA

概述: 理论部分主要介绍了: 对称加密.非对称加密.单向加密.密钥交换.CA.PKI 操作部分主要有: 对称加密.非对称加密.单向加密的实现,已经openssl常用功能,生成密码.生成随机数已经使用openssl创建私有CA 系统环境说明: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.6 (Final) [[email protected] ~]# uname -rm 2.6.32-504.el6.x86_64

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

openssl搭建私有CA

数据加密.CA.OpenSSL SSL security socket layer,安全套接字层 openssl (软件) 加密算法和协议: 对称加密:加密和解密使用同一密钥:(依赖于算法和密钥,其安全性依赖于密钥而非算法) 常见算法:des  3des(常用)  idea  cast5 特性:加密.解密使用同一密钥:将明文分隔成固定大小的块,逐个进行加密 缺陷:密钥过多和密钥分发 非对称加密: 密钥对儿:公钥(public key)和私钥(secret key) 公钥从私钥中提取而来,使用公钥

OpenSSL以及私有CA的搭建

首先我们肯定会问什么是OpneSSL,以及OpenSSL有什么用?当让这不仅是刚接触Linux的我想知道,相信大多数人和我一样也非常想知道,因为OpenSSL是linux上基础的服务之一,了解它的应用可以帮助我们更好的了解linux.那么我们先了解下什么是OpenSSL已经它有什么用. 一.OpenSSL及其应用 首先我们要了解SSL是什么?SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览