9.openssl ca
用于签名证书请求、生成CRL、维护一个记录已颁发证书和这些证书状态的数据库。
证书请求私用CA的私钥签名之后就是证书。
[root@xuexi tmp]# man ca SYNOPSIS openssl ca [-verbose]
[-config filename]
[-name section] [-gencrl]
[-revoke file]
[-crl_reason reason] [-crl_hold instruction] [-crl_compromise time] [-crl_CA_compromise time] [-crldays days] [-crlhours hours] [-crlexts section] [-startdate date] [-enddate date]
[-days arg][-md arg] [-policy arg] [-keyfile arg] [-key arg]
[-passin arg]
[-cert file] [-selfsign] [-in file] [-out file]
[-notext] [-outdir dir]
[-infiles]
[-spkac file] [-ss_cert file] [-preserveDN] [-noemailDN]
[-batch]
[-msie_hack] [-extensions section] [-extfile section] [-engine id] [-subj arg] [-utf8] [-multivalue-rdn]
该伪命令的选项太多,分类来解释。
要注意,ca命令是用于签名证书的,所以它所需要的文件除了配置文件外就是私钥文件和证书请求文件,而签名后生成的文件是证书文件,因此使用-in指定的对象是签名文件,-infile是指定多个签名文件,-keyfile是指定私钥文件,-out是指定输出的证书文件。
【CA选项】
-config filename:指定要使用的配置文件,指定后将忽略openssl.cnf中指定的关于ca的配置选项。
-name section:指定使用配置文件中的那个section。指定后将忽略openssl.cnf中的default_ca段。
-in filename:指定要被CA签名的单个证书请求文件。根CA为其他证书签名时使用。
-infiles:该选项只能是最后一个选项,该选项所接的所有参数都被认为是要被签名的证书请求文件,即一次性签名多个请求文件时使用的选项。
-selfsign:使用伪命令ca自签名。需指定私钥和证书请求文件。指定-ss_cert选项时该选项被忽略。
-ss_cert filename:将被CA自签名的单个证书文件。
-out filename:证书的输出文件,同时也会输出到屏幕。不指定时默认输出到stdout。
-outdir dir_name:证书的输出目录。指定该选项时将自动在此目录下生成一个文件名包含16进制serial值的.pem证书文件。
-cert:CA自己的证书文件。
-keyfile filename:指定签名证书请求时的私钥文件,即CA自己的私钥文件。
-key passwd_value:指定私钥的加密密码。
-passin arg:指定密码,什么的密码?
-verbose:打印操作执行时的详细信息
-notext:禁止将证书输出到-out指定的文件中
-days arg:证书有效期限,从创建时刻开始算startdate,有效期结束点为enddate。
-startdate:自指定证书的开始时间,和-enddate一起使用可以推算出证书有效期。
-enddate:自指定证书的结束时间。
-md alg:指定单向加密算法
-policy arg:该选项是配置文件中的section内容,该选项指定了证书信息中的field部分是否需要强制提供还是要强制匹配,或者可提供可不提供。详细的见配置文件说明。
-extensions section:指定当前创建的证书使用配置文件中的哪个section作为扩展属性。
-batch:使用批处理模式,即非交互模式。该模式下不会询问。
-subj arg:取代证书请求中的subject,格式/type0=value0/type1=value1/type2=...
【crl相关】
-gencrl:基于index file中的信息生成crl。
-crldays num:该值为crl距离到期的天数,计算方式是从现在开始到CRL nextUpdate字段中定义的时间距离。
-crlhours num:该值为CRL距离到期的小时数。
-revoke filename:要吊销的证书文件。
配置文件关于ca的部分
其中被标记为必须项的表示配置文件中或者命令行中必须给出该选项及其值。
new_certs_dir:等同于-outdir选项。必须项
certificate:等同于-cert选项,CA自己的证书文件。必须项
private_key:等同于-keyfile选项,签名请求时私钥文件即CA自己的私钥文件。必须项
default_days:等同于-days选项。
default_startdate:等同于-startdate选项。
default_enddate:等同于-enddate选项。
default_crl_hours/default_crl_days:分别等同于-crlhours/-crldays选项。生成CRL时必须项
default_md:等同于-md选项。必须项
database:openssl维护的数据库文件。存放证书条目信息及状态信息。必须项
serial:已颁发证书的序列号(16进制)文件。必须项且该文件中必须存在一个序列值
unique_subject:如果设置为yes,database中的subject列值必须不重复。如果设置为no,允许subject重复。默认是yes,这是为了兼容老版本的Openssl,推荐设置为no。
crlnumber:记录下一个crl序列号(16进制)的文件。该文件必须包含一个有效的crl值。
x509_extensions:等同于-extensions选项。
crl_extensions:等同于-crlexts选项。
policy:等同于-policy选项。必须项
name_opt/cert_opt:证书的展示格式,虽非必须但建议设置为ca_default,若不设置将默认使用老版本的证书格式(不建议如此)。伪命令ca无法直接设置这两个选项,而伪命令x509的-nameopt和-certopt选项可以分别设置。
copy_extensions:决定证书请求中的扩展项如何处理的。如果设置为none或不写该选项,则扩展项被忽略并且不复制到证书中去。如果设置为copy,那么证书请求中已存在而证书中不存在的扩展项将复制到证书中。如果设置为copyall,那么证书请求中所有的扩展项都复制到证书中:此时如果证书中已存在某扩展项,则先删除再复制。该选项的主要作用是允许证书请求为特定的扩展项如subjectAltName提供值。使用该选项前请先查看man ca中的WARNINGS部分。建议一般简单使用时设置为none或不设置。
更多关于ca配置项请看:http://www.cnblogs.com/f-ck-need-u/p/6091027.html
关于ca的自签名和签名的方法请看:http://www.cnblogs.com/f-ck-need-u/p/6091105.html
9.openssl ca的更多相关文章
- openssl CA 自签证书,阿里云配置tomcat https
<一,openssl CA自签发证书> 1,生成私钥 openssl genrsa 1024 > private.key;
- openssl ca(签署和自建CA)
用于签署证书请求.生成吊销列表CRL以及维护已颁发证书列表和这些证书状态的数据库.因为一般人无需管理crl,所以本文只介绍openssl ca关于证书管理方面的功能. 证书请求文件使用CA的私钥签署之 ...
- 搭建自己的CA服务 - OpenSSL CA 实战
当前网络安全事故不断,如何提升系统安全性是一个系统上线之前必须考虑的重点DFx特性之一.在提升系统安全性的方法中, 给每个端口(通道)加上SSL协议是最通用和有效的一种. 使用SSL就必须要有证书,在 ...
- Openssl ca命令
一.简介 ca命令能够签发证书请求文件以及生成CRL列表 二.语法 openssl ca [-verbose] [-config filename] [-name section] [-gencrl] ...
- (13) openssl ca(签署和自建CA)
用于签署证书请求.生成吊销列表CRL以及维护已颁发证书列表和这些证书状态的数据库.因为一般人无需管理crl,所以本文只介绍openssl ca关于证书管理方面的功能. 证书请求文件使用CA的私钥签署之 ...
- Ruby 和 OpenSSL CA 证书的问题
作为一个版本控,总是希望保持电脑中各种软件到最新版本. 最近通过 brew 升级 OpenSSL 和 ruby-build 到最新,尤其是 ruby-build 支持最新的 Ruby 2.2.1,新版 ...
- Openssl CA.pl命令
一.简介 CA.pl是证书操作的友好接口,简化了一些相似的证书创建或管理操作 二.语法 CA.pl [-?] [-h] [-help] [-newcert] [-newreq][-newreq-nod ...
- OpenSSL - 利用OpenSSL自签证书和CA颁发证书
秘钥操作 这个命令会生成一个1024/2048位的密钥,包含私钥和公钥. openssl genrsa -out private.key 1024/2038 ( ...
- openSSL命令、PKI、CA、SSL证书原理
相关学习资料 http://baike.baidu.com/view/7615.htm?fr=aladdin http://www.ibm.com/developerworks/cn/security ...
随机推荐
- crontab服务详解(任务计划)
crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 servi ...
- [转]C#程序无法在64位系统上运行之.NET编译的目标平台
今天将编译的C#的exe拷贝到测试机上(Win7_64bit),一运行就挂了,提示“stop working”,一开始怀疑测试机上没有安装.net framework框架,追究半天原来是编译的目标平台 ...
- 《winform窗体应用程序》----------简易记事本
首先先给大家发表几张图片,描述一下记事本程序要实现的功能以及界面设计. 以上这些就是简易记事本的的主界面设计. 下面我们来做一些简单的讲解: 1.使用MenuStrip控件来实现菜单栏的基本设计. 在 ...
- springmvc配置servlet的拦截形式/*和/的区别
今天复制一个现有的spring-mvc的项目修改配置作为新的项目,结果悲剧了!遇到了一个小问题困扰了半天,找同事找总监都没有搞定,纠结了半天终于发现了问题所在,随笔记一下,所谓好记性不如烂博客嘛! 问 ...
- Java应用程序监控JavaMelody
JavaMelody是运行在Java Web容器中,用来监控Java内存和J服务器CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求等的执行数量,平均执行时间,错误百分 ...
- Struts2中Action由自己与由Spring管理的区别
struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建. 这导致在两种情况下struts.xml配置文件的略微差异. 假如: ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- linux下解压大于4G文件提示error: Zip file too big错误的解决办法
error: Zip file too big (greater than 4294959102 bytes)错误解决办法.zip文件夹大于4GB,在centos下无法正常unzip,需要使用第三方工 ...
- 部署web应用
package it.cast.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servle ...
- html基础 1
大三已经快要结束的时候才意识到自己真的一点东西都没有学到,然后就决定要在大四结束前能学多少是多少,自己要尽力.之所以要开博客是因为自己总是坚持不了,要给自己一个坚持下去的动力所以开始了.慢慢的一步一步 ...