建立私有CA和颁发证书

摘要:
证书申请和签名步骤:1.生成申请证书。2.RA验证。3.CA签名。4.获取证书以创建专用CA,并申请证书以创建私有CA:openssl配置文件:/etc/pki/tls/openssl cnf计算机可以设置多个CA,默认CA为CA_默认存储位置用于dir/etc/pki/CA主数据证书$dir/certs证书crl_dir$dir/crl证书吊销

证书申请及签署步骤:

  1、生成申请证书

  2、RA核验

  3、CA签署

  4、获取证书

创建私有CA和申请证书

  创建私有CA:

    openssl的配置文件:

/etc/pki/tls/openssl.cnf 

机器可以搭建多个ca ,默认使用的ca 是CA_default 

 存放位置具体用处
dir/etc/pki/CA主要的数据
certs$dir/certs颁发的证书
crl_dir$dir/crl证书吊销列表
datebase $dir /index.txt证书颁发后存的数据库文件
new_certs_dir$dir/newcerts新颁发的证书
certificate$dir/cacert.pemca自己的证书文件
serial $dir/serial下一个要颁发证书的证书编号
crlnumber $dir/crlnumbe证书吊销列表的编号
crl  $dir/crl.pem 被吊销的证书列表文件
private_key  $dir/private/cakey.pem存放ca的私钥
RANDFILE $dir/private/.rand存放私钥用到的随机数
默认的设置时长 
default_days  365默认的证书有效期
default_crl_days30默认的吊销列表
default_md sha256用到的算法
policy     policy_match搭建的ca到底给谁自己服务的和用户填写的是否相同
countryName国家match     相同
stateOrProvinceName省/州match     相同
organizationName组织/公司名match     相同
organizationalUnitName办公部门optional    可选的
commonName颁发的证书是给那个服务用的supplied    必须提供
emailAddress邮箱地址optional    可选的

  

 

policy_anything 

给其他公司使用的 
countryName国家optional
stateOrProvinceName省/州optional

localityName 

本地名,内部名optional
organizationName组织/公司名optional
organizationalUnitName办公部门optional
commonName颁发的证书是给那个服务用的optional
emailAddress邮箱地址optional

建立私有CA,为用户颁发证书

一、搭建CA

1、进入这个目录

cd /etc/pki/CA/

2、生成私钥

(umask 077;openssl genrsa -out private/cakey.pem 4096)

 3、自签名(req 申请,不带x509表示是向ca申请证书,-key 私钥文件 ,-out 输出 -days 指定时间

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

 交互式多行重定向,可用于脚本时:

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 <<EOF
> CN
> Shanghai
> ShangHai
> alex
> alex.com > Lv_ZhengYuan@163.com > EOF

 直接查看这个文件是base64的格式,可以转换成文本格式查看

openssl x509 -in cacert.pem -noout -text

可以导出到Windows中修改后缀为crt查看

sz cacert.pem

建立私有CA和颁发证书第1张

 4、创建index.txt文件具体意思上面有写

touch /etc/pki/CA/index.txt

5、创建serial,这个文件里面需要写16进制的编号(0F =15,下一个编号就是10,正常从0开始编号,这只是为了记得更清楚)

echo 0F > /etc/pki/CA/serial

 二、申请证书

需要申请证书的机器上,证书最好放在服务的文件夹里 我当前存放的是/data/app文件夹里

cd /data/app

 生成私钥文件

(umask 066;openssl genrsa -out app.key 1024)

通过私钥文件,申请证书(私有证书,国家、省、公司名必须一样) 输入必须信息

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

把生成的申请文件传输给ca服务器的/data/里

scp app.csr 172.16.8.180:/data/

三、颁发证书

ca服务器收到申请文件,就可以颁发证书了

openssl ca -in /data/app.csr -out /etc/pki/CA/certs/app.crt -days 100

如果报错如下图,就说明缺少index.txt文件

建立私有CA和颁发证书第2张

touch /etc/pki/CA/index.txt

继续执行命令,如果报错如下图:说明缺少文件serial

建立私有CA和颁发证书第3张

echo 0F > /etc/pki/CA/serial

如果还报错的话,表示刚刚上面步骤中的三种必须相同的信息有不同的

建立私有CA和颁发证书第4张

如果因为国家,城市,公司名不一样导致报错,也可以直接直接修改/etc/pki/tls/openssl.cnf 里的配置信息,让原本必须相同的改为可选的就行.

 查看是否确认无误,如果确认没有问题就输两遍y确定

建立私有CA和颁发证书第5张

 如下图:证书就生成了

建立私有CA和颁发证书第6张

 下图对应的文件或文件夹用处

建立私有CA和颁发证书第7张

 certs 下的 app.crt 刚刚生成的证书

private 下的0F.pem 是app.crt的备份文件,系统自己生成的

index.txt 放证书信息(v 表示当前证书是有效的)

建立私有CA和颁发证书第8张

 index.txt.old ,系统自己生成的备份,这次还没有生成证书前的index.txt备份

serial.old 系统自己生成的备份,这次还没有生成证书前的serial备份

 建立私有CA和颁发证书第9张

 在windows中查看,但是因为颁发给他的根ca现在还是不可信的,所以这个证书也是不可信的

建立私有CA和颁发证书第10张建立私有CA和颁发证书第11张

两种办法

一、

1、直接点击根ca的安装证书

2、按需选择,是安装到当前用户,还是当前计算机

2、将所有证书存到下列储存--点击浏览--点击受信任的根证书颁发机构--点击确定

建立私有CA和颁发证书第12张

 4、完成,提示导入成功

5、不确定的话,可以自己查看一下,刚刚的证书是否导入进去了

建立私有CA和颁发证书第13张

 导入根证书后,申请的证书就自动受信任了,如下图

建立私有CA和颁发证书第14张

二、应用和功能

建立私有CA和颁发证书第15张

  后续导入步骤同上

 查看证书当前状态:和直接查看index.txt文件状态是一样的

openssl ca -status 0F

默认用相同的申请文件,继续颁发多个证书是不行的,不过可以修改配置文件index.txt.attr 中yes改为no即可

吊销证书:状态为R

openssl ca -revoke /etc/pki/CA/newcerts/10.pem

更新证书吊销列表

openssl ca -gencrl -out /etc/pki/CA/crl.prm

报错如下:缺少CRL_number

建立私有CA和颁发证书第16张

 新建一个crlnumber往里面写入证书编号FF

echo FF > /etc/pki/CA/crlnumber

此时在执行更新吊销列表就可以了

建立私有CA和颁发证书第17张

 查看被吊销的证书

openssl crl -in /etc/pki/CA/crl.pem -noout -text

在Windows 中查看该文件需要修改后缀crl.pem.crl

免责声明:文章转载自《建立私有CA和颁发证书》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇杭电oj--Tickets(dp)13计本AI第二次作业下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP的openssl加密扩展使用小结

引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求)、数据完整性(没有被人修改过)、数据私密性(密文,无法直接读取)等。虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方...

openssl 学习之从证书中提取RSA公钥N 和 E

原文链接:http://blog.csdn.net/kkxgx/article/details/19850509 通常数字证书包含很多信息,其中N和E值即我们称为的公钥。如何从PEM 或者DER格式的证书中提出证书呢?下面给出代码实现从PEM和DER编码的证书中提出N、E。 [cpp]view plaincopy #include<open...

Libevent:8Bufferevents高级主题

本章描述的是Libevent的bufferevent实现的一些高级特性,这对于普通应用来说并非必须的。如果你只是学习如何使用bufferevent,则应该跳过本章去阅读evbuffer的章节。 一:成对的bufferevent 有时,网络程序可能需要与自己本身进行对话。比如,某个程序用来在某些协议之上进行隧道用户链接,而有时它需要在这种协议之上,隧道与自...

php openssl相关加密解密 验签代码

<?php //生成公钥 私钥 /** * 用 OpenSSL, Linux 上自带,常用命令如下: -- 生成 RSA 私钥(传统格式的) openssl genrsa -out rsa_private_key.pem 1024 -- 将传统格式的私钥转换成 PKCS#8 格式的(JAVA需要使用的私钥需要经过PKCS...

Centos7离线部署redis集群

  目录 一、安装redis需要的依赖 二、安装redis 三、部署redis集群 一、安装redis需要的依赖 1、安装GCC   1、检查是否安装gcc     命令: gcc  -v     如果能输出gcc版本信息,,说明安装了gcc。反之需要安装gcc   2、安装gcc     2.1创建目录/usr/local/gccSrc     2.2...

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3

Newifi OpenWrt 下 EAP-PEAP,EAP-TLS 企业级无线认证及 FreeRadius3 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-07-15. 副标题:家用路由器,配置EAP-PEAP,EAP-TLS企业认证的无线接入服务。 家里的WiFi一般是用WPA2认证,密码只有一个,泄漏了,家里所有设备都要换密码。...