(14) openssl x509(签署和自签署)
主要用于输出证书信息,也能够签署证书请求文件、自签署、转换证书格式等。
openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行设定或者使用该伪命令的默认值,它就像是一个完整的小型的CA工具箱。
openssl x509 [-in filename] [-out filename] [-serial] [-hash] [-subject_hash] [-issuer_hash] [-subject] [-issuer]
[-nameopt option] [-email] [-startdate] [-enddate] [-purpose] [-dates] [-modulus] [-pubkey] [-fingerprint] [-noout]
[-days arg] [-set_serial n] [-signkey filename] [-x509toreq] [-req] [-CA filename] [-CAkey filename] [-CAcreateserial]
[-CAserial filename] [-text] [-md2|-md5|-sha1|-mdc2] [-extfile filename] [-extensions section]
选项非常多,所以分段解释。
【输入输出选项:】
-in filename :指定证书输入文件,若同时指定了"-req"选项,则表示输入文件为证书请求文件。
-out filename :指定输出文件
-md2|-md5|-sha1|-mdc2:指定单向加密的算法。
【信息输出选项:】
-text:以text格式输出证书内容,即以最全格式输出,
:包括public key,signature algorithms,issuer和subject names,serial number以及any trust settings.
-certopt option:自定义要输出的项
-noout :禁止输出证书请求文件中的编码部分
-pubkey :输出证书中的公钥
-modulus :输出证书中公钥模块部分
-serial :输出证书的序列号
-subject :输出证书中的subject
-issuer :输出证书中的issuer,即颁发者的subject
-subject_hash :输出证书中subject的hash码
-issuer_hash :输出证书中issuer(即颁发者的subject)的hash码
-hash :等价于"-subject_hash",但此项是为了向后兼容才提供的选项
-email :输出证书中的email地址,如果有email的话
-startdate :输出证书有效期的起始日期
-enddate :输出证书有效期的终止日期
-dates :输出证书有效期,等价于"startdate+enddate"
-fingerprint :输出指纹摘要信息
输出证书某些信息的时候,可以配合"-noout"选项(即禁止输出证书中的哪一部分),然后再指定某些项来使用。例如:
[root@localhost ~]# openssl x509 -in cert.pem -noout -text
[root@localhost ~]# openssl x509 -in cert.pem -noout -serial
[root@localhost ~]# openssl x509 -in cert.pem -noout -subject
[root@localhost ~]# openssl x509 -in cert.pem -noout -issuer
[root@localhost ~]# openssl x509 -in cert.pem -noout -fingerprint
[root@localhost ~]# openssl x509 -in cert.pem -noout -issuer_hash
[root@localhost ~]# openssl x509 -in cert.pem -noout -startdate -enddate
【签署选项:】
*****************************************************************************************
* 伪命令x509可以像openssl ca一样对证书或请求执行签名动作。注意,openssl x509 *
* 不读取配置文件,所有的一切配置都由x509自行提供,所以openssl x509像是一个"mini CA" *
*****************************************************************************************
-signkey filename :该选项用于提供自签署时的私钥文件,自签署的输入文件"-in file"的file可以是证书请求文件,也可以是已签署过的证书。-days arg:指定证书有效期限,默认30天。
-x509toreq :将已签署的证书转换回证书请求文件。需要使用"-signkey"选项来传递需要的私钥。
-req :x509工具默认以证书文件做为inputfile(-in file),指定该选项将使得input file的file为证书请求文件。
-set_serial n :指定证书序列号。该选项可以和"-singkey"或"-CA"选项一起使用。
:如果和"-CA"一起使用,则"-CAserial"或"-CAcreateserial"选项指定的serial值将失效。
:序列号可以使用数值或16进制值(0x开头)。也接受负值,但是不建议。
-CA filename :指定签署时所使用的CA证书。该选项一般和"-req"选项一起使用,用于为证书请求文件签署。
-CAkey filename :设置CA签署时使用的私钥文件。如果该选项没有指定,将假定CA私钥已经存在于CA自签名的证书文件中。
-CAserial filename:设置CA使用的序列号文件。当使用"-CA"选项来签名时,它将会使用某个文件中指定的序列号来唯一标识此次签名后的证书文件。
:这个序列号文件的内容仅只有一行,这一行的值为16进制的数字。当某个序列号被使用后,该文件中的序列号将自动增加。
:默认序列号文件以CA证书文件基名加".srl"为后缀命名。如CA证书为"mycert.pem",则默认寻找的序列号文件为"mycert.srl"
-CAcreateserial :当使用该选项时,如果CA使用的序列号文件不存在将自动创建:该文件将包含序列号值"02"并且此次签名后证书文件序列号为1。
:一般如果使用了"-CA"选项而序列号文件不存在将会产生错误"找不到srl文件"。
-extfile filename :指定签名时包含要添加到证书中的扩展项的文件。
【CERTIFICATE EXTENSIONS】
-purpose:选项检查证书的扩展项,并决定该证书允许用于哪些方面,即证书使用目的范围。
basicConstraints:该扩展项用于决定证书是否可以当作CA证书。格式为basicConstraints=CA:true | false
:1.如果CA的flag设置为true,那么该证书允许作为一个CA证书,即可以颁发下级证书或进行签名;
:2.如果CA的flag设置为false,那么该证书就不能作为CA,不能为下级颁发证书或签名;
:3.所有CA的证书中都必须设置CA的flag为true。
:4.如果basicConstraints扩展项未设置,那么证书被认为可疑的CA,即"possible CA"。
keyUsage:该扩展项用于指定证书额外的使用限制,即也是使用目的的一种表现方式。
:1.如果keyUsage扩展项被指定,那么该证书将又有额外的使用限制。
:2.CA证书文件中必须至少设置keyUsage=keyCertSign。
:3.如果设置了keyUsage扩展项,那么不论是否使用了critical,都将被限制在指定的使用目的purpose上。
例如,使用x509工具自建CA。由于x509无法建立证书请求文件,所以只能使用openssl req来生成请求文件,然后使用x509来自签署。
自签署时:
使用"-req"选项明确表示输入文件为证书请求文件,否则将默认以为是证书文件;
使用"-signkey"提供自签署时使用的私钥;
[root@localhost ssl]# openssl req -new -keyout key.pem -out req.csr #由私钥生成请求证书 [root@localhost ssl]# openssl x509 -req -in req.csr -signkey key.pem -out x509.crt #使用x509签署请求证书时,必须同时指定请求证书和私钥
x509也可以用来签署他人的证书请求,即为他人颁发证书。注意,为他人颁发证书时,确保serial文件存在,建议使用自动创建的选项"-CAcreateserial"。
[root@localhost ssl]# openssl x509 -req -in req.csr -CA ca.crt -CAkey ca.key -out x509.crt -CAcreateserial
(14) openssl x509(签署和自签署)的更多相关文章
- openssl x509(签署和自签署)
		
openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 主要用于输出证书信息,也能够签署证书请求文件.自签署.转换证书格式等. op ...
 - openssl签署和自签署证书的多种实现方式
		
openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成 ...
 - (15) openssl签署和自签署证书的多种实现方式
		
1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成私钥:2.创建证书请求:3.使用私钥对证书请求签名. 由于测试环境,所以自建的CA只能是根CA. 所使用的配置文件如下: [ ...
 - 10.openssl x509
		
主要用于输出证书信息.也能够用于签名.自签名.转换证书格式.还原证书为证书请求等.该命令非常强大,几乎实现了伪命令req,ca,verify,crl的所有功能,最牛的一点是该命令不需要通过配置文件就能 ...
 - openssl - X509证书操作函数
		
原文链接: http://blog.csdn.net/zqt520/article/details/26965797 现有的证书大都采用X.509规范,主要同以下信息组成:版本号.证书序列号.有效期. ...
 - OpenSSL X509 Funtion
		
OpenSSL X509 Funtion 来源:https://blog.csdn.net/wanjie518/article/details/6570141 现有的证书大都采用X509规范, 主要同 ...
 - Openssl x509命令
		
一.简介 x509指令是一个功能很丰富的证书处理工具.可以用来显示证书的内容,转换其格式,给CSR签名等 二.语法 openssl x509 [-inform DER|PEM|NET] [-outfo ...
 - Linux和Shell回炉复习系列文章总目录
		
本页内容都是本人回炉Linux时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接右上角叉 ...
 - openssl ca(签署和自建CA)
		
用于签署证书请求.生成吊销列表CRL以及维护已颁发证书列表和这些证书状态的数据库.因为一般人无需管理crl,所以本文只介绍openssl ca关于证书管理方面的功能. 证书请求文件使用CA的私钥签署之 ...
 
随机推荐
- 树莓派 zero w 一根线使用
			
参考网站:https://sspai.com/post/40086 硬件: 一台mac电脑 一根micro b usb线 一块zero w板子 一张micro sd卡 一.制卡 格式化 烧写镜像文件 ...
 - bzoj 5019: [Snoi2017]遗失的答案【dp+FWT】
			
满足GL的组合一定包含GL每个质因数最大次幂个最小次幂,并且能做限制这些数不会超过600个 然后质因数最多8个,所以可以状压f[s1][s2]为选s1集合满足最大限制选s2集合满足最小限制 dfs一下 ...
 - 鸟哥私房菜基础篇:vim 程序编辑器习题
			
猫宁!!! 参考链接:http://cn.linux.vbird.org/linux_basic/0310vi.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-我用 vi 开启某个档案后,要在 ...
 - hdu 4704 Sum【组合数学/费马小定理/大数取模】By cellur925
			
首先,我们珂以抽象出S函数的模型:把n拆成k个正整数,有多少种方案? 答案是C(n-1,k-1). 然后发现我们要求的是一段连续的函数值,仔细思考,并根据组合数的性质,我们珂以发现实际上答案就是在让求 ...
 - 更换过Ubuntu之后经常性卡死,原因有待细究
			
如题: 卡死时间: 2019-5-22-14:45 再次卡死,这次绝对不是看视频的原因了,具体什么原因还是不知道,不过我觉得就是显卡的问题,和搜索出来的问题差不多,安装了一些东西,看看行不行吧 sud ...
 - kettle 导入xml 资源文件
			
Repository | ExploreRight click the root node of the repositorySelect Import objects from an XML fil ...
 - 利用VS自带的dotfuscator混淆代码的学习
			
对于一些原创的敏感代码,我们可以通过简单的重命名混淆使得别人难以真正理解执行原理.这一点,使用VS自带的dotfuscator即可实现. 如上图所示,你可以自定义选择哪些类被排除重命名,内置的规则中, ...
 - DNS练习之反向解析
			
环境同正向解析一样. 切换到/var/named/chroot/etc目录下: 编辑named.rfc1912.zones文件,在末尾添加如下内容: [root@sishen63 etc]# vim ...
 - discuz x2.5用户注册后邮箱认证后无法收到邮件或者直接进垃圾箱
			
又是一个周末,jquery特效继续折腾我那discuz论坛,我开启了个邮箱验证,恶意注册的太恶心了,没有办法. 能稍微屏蔽点,但是问题来了,据亲们反应,无法收到验证邮件,或者有时间直接进入垃圾箱,这个 ...
 - 用NPOI从DataTable到Excel,向Excel模板填充数据
			
DataTable---->Excel,填充数据 private IWorkbook workbook = null; private ISheet sheet = null; private ...