须填写这项申请信息,可选指可有可无。
步骤二:创建所需的文件,这文件是为了后续申请ca用的,在此先配置。
步骤三:生成私钥
步骤四:生成自签名证书 openssl req -new -x509 –key
/etc/pki/CA/private/cakeypem -days 365 -out /etc/pki/CA/cacertpem
查看证书文件
步骤五:在需要的客户端申请私钥
步骤六:生成证书申请文件
步骤七:把证书请求文件传输给CA
scp /etc/pki/tls/servicesrc 192168100200:
步骤八:CA签署证书,并将证书颁发给请求者。注意:默认国家,省,公司名称三项必须和CA 一致
步骤九:查看申请完成的证书
步骤一:生成自定义证书申请文件,并把文件发给CA。
步骤二:ca签署自定义申请证书
步骤三:要完成自定义申请证书,必须要修改配置文件:/etc/pki/tls/opensslcnf
修改后
步骤四:重新签署自定义申请证书,此时,签署证书没有报错,输入两次yy,文件末尾显示Data Base Updated ,完成签署。
步骤五:查看新申请完成的证书
步骤六:当我们的证书丢失或者不想使用的时候,如何吊销证书呢?方法如下:openssl ca -revoke /etc/pki/CA/newcerts/02pem
步骤七:指定一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/CA/crlnumber
步骤八:更新证书吊销列表 openssl ca -gencrl -out /etc/pki/CA/crl/crlpem
步骤九:查看crl文件:openssl crl -in /etc/pki/CA/crl/crlpem -noout -text
openssl genrsa -out rootkey 2048
也可以是pem文件,也可为了区分这是私钥而改用key后缀名,内容如下:
查看详细解析:包含两个大素数和两个指数和一个系数
openssl rsa -in rootkey -text
可通过命令提取公钥:
openssl rsa -pubout -in rootkey
openssl req -new -out root-reqcsr -key rootkey -keyform PEM
-keyform PEM:证书有pem和der格式之分,前者文本,多用于java和windows服务器,后者二进制
CSR是Certificate Signing Request的英文缩写,即证书请求文件
openssl x509 -req -in root-reqcsr -out root-certcer -signkey rootkey -CAcreateserial -days 365
-CAcreateserial ,创建证书序列号,使用此选项,当CA序列号文件不存在时将被创建:它将包含序列号“02”,正在签名的证书将具有1作为其序列号。通常如果指定了-CA选项并且序列号文件不存在,则会出现错误。
-days 据说3650天有时候会意外导致证书验证失败,没遇到过
此处可有pem、crt、cer多种输出格式,其实内容都一样,来试一下:
每次生成的证书都不一样,但是未发现不同后缀名下的证书格式不同。
我的理解:
pem是最基本的编码格式,der也相同。
CRT文件是由第三方证书颁发机构(例如VeriSign或DigiCert)提供和生成的安全文件,ASCII编码格式。
cer是crt的微软形式。
为了统一,全使用cer格式。
可选择将证书和私钥导入密钥库,通常用p12和jks( Java Key Store)格式:
openssl pkcs12 -export -in root-certcer -inkey rootkey -out rootp12 -name "lab"
需要加密保护, -name 设置别名
然后可选择使用keytool将p12转为jks格式,此处就不做转换了。
步骤基本相同
步骤基本相同
openssl genrsa -out server-keykey 2048
openssl req -new -out server-reqcsr -key server-keykey -keyform PEM
openssl x509 -req -in server-reqcsr -out server-certcer -CA F:\CERT\mycert\ test\openssl\win\root\root-certcer -CAkey F:\CERT\mycert\test\openssl\win\root\rootkey -CAcreateserial -days 360
openssl pkcs12 -export -in server-certcer -inkey server-keykey -out server p12 -name "lab-server"
运行环境要包含完整证书链。需要将证书链放到系统可信目录下。
为证书绑定ip,只能通过config文件,
文件如下可将常用参数写入,生成请求文件时直接enter即可:
使用配置文件时在生成请求文件和签发证书时的参数不同:
生成请求文件:
openssl req -new -out server-req1csr -key server-keykey -keyform PEM -extensions v3_req -config openssl cnf
签发证书:
openssl x509 -req -in server-req1csr -out server-cert1cer -CA F:\CERT\mycert\test\openssl\win\root\root- certcer -CAkey F:\CERT\mycert\test\openssl\win\root\rootkey -CAcreateserial -days 360 -extensions v3_req -extfile opensslcnf
默认证书链长度为2,使用中间ca签发时,中间ca的生成需要在配置文件中加修改长度参数:
[ v3_ca ]
basicConstraints = CA:true,pathlen:3
Note:
参考:
OpenSSL主配置文件opensslcnf
利用OpenSSL创建证书链并应用于IIS7
openssl系列文章: >
SSL和CA两者之间的区别:
SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
CA认证,是指为电子签名相关各方提供真实性、可靠性验证的活动,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
大家在选择SSL证书肯定看到过CA字眼,简单来说,CA是数字证书管理机构,SSL证书是数字证书的一种,CA机构签发SSL证书。可以说,SSL是CA颁发的证书中的一种。
某种意义上说,CA证书=SSL证书。
但是从另外一方面来说,SSL证书与CA证书又有所不同:
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为服务器证书。
而CA机构除了可以颁发SSL证书之外,还可以颁发其他数字证书,比如:代码签名证书和电子邮件证书等等。所以说,CA机构所管辖的范围要大于SSL证书的范围。
总结:
CA是证书颁发机构,由CA机构颁发的证书都可以成为CA证书,SSL证书只是CA机构颁发证书的其中一种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)