建立私有CA和申请证书
CA和证书
PKI: Public Key Infrastructure
签证机构:CA(Certificate
Authority)
注册机构:RA
证书吊销列表:CRL
证书存取库:
X.509:定义了证书的结构以及认证协议标准
版本号
序列号
签名算法
颁发者
有效期限
主体名称
主体公钥
CRL分发点
扩展信息
发行者签名
证书获取
证书类型:
证书授权机构的证书
服务器
用户证书
获取证书两种方法:
使用证书授权机构
生成签名请求(csr)
将csr发送给CA
从CA处接收签名
自签名的证书
自己签发自己的公钥
创建CA和申请证书
创建私有CA:
openssl的配置文件:
/etc/pki/tls/openssl.cnf
[root@Compro 7 ~]# vim
/etc/pki/tls/openssl.cnf
(1) 创建所需要的文件
[root@Compro 7 ~]# touch
/etc/pki/CA/index.txt 创建CA存放数据的文档
[root@Compro 7 ~]# echo 01 >
/etc/pki/CA/serial 索引编号生成版本号到一个文件
[root@Compro 7 ~]# cat
/etc/pki/CA/serial
01
(2) CA自签证书
生成私钥
[root@Compro 7 ~]# cd /etc/pki/CA/
[root@Compro 7 CA]# ls
certs
crl index.txt newcerts private serial
[root@Compro 7 CA]# (umask
066;openssl genrsa -out private/cakey.pem 2048)
[root@Compro 7
CA]# cd private/
[root@Compro 7 private]# ls
cakey.pem
[root@Compro 7 private]# cat cakey.pem
生成自签名证书 :
格式语法
:
opensslreq-new -x509 –key
/etc/pki/CA/private/cakey.pem-days 7300
-out
/etc/pki/CA/cacert.pem
-new: 生成新证书签署请求
-x509: 专用于CA生成自签证书
-key: 生成请求时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE:
证书的保存路径
[root@Compro 7 private]# openssl req -new -x509
-key cakey.pem -days 7300 -out ../cacert.pem 命令
Country Name (2 letter code) [XX]:CN
国家
State or Province Name (full name) []:beijing
城市
Locality Name (eg, city) [Default City]:haidian
地区
Organization Name (eg, company) [Default Company
Ltd]:xiaomag.com 公司
Organizational Unit Name (eg, section)
[]:FBI 部门
Common Name (eg, your name or your server's
hostname) []:centos7 指定给谁用
Email Address
[]:xiaomag@xiaomag.com 邮箱
(3) 颁发证书:
(a)
在需要使用证书的主机生成证书请求; 这时候换到另一台机器上面做,比如我使用CentOS6
给web服务器生成私钥 格式语法:
(umask066; opensslgenrsa-out /etc/httpd/ssl/httpd.key2048)
[root@Compro ~]# (umask 066;openssl genrsa -out /etc/pki/tls/private/httpd.key
2048)
[root@Compro ~]# cd /etc/pki/tls/private/
[root@Compro private]# ls
httpd.key
生成证书申请文件 opensslreq-new
-key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr
[root@Compro private]# openssl req -new -key httpd.key -days 365 -out
httpd.csr
Country Name (2 letter code) [XX]:CN
国家
State or Province Name (full name) []:beijing 城市
Locality Name (eg, city) [Default City]:haidian 地区
Organization
Name (eg, company) [Default Company Ltd]:xiaomag.com 公司
Organizational Unit Name (eg, section) []:FBI 部门
Common Name
(eg, your name or your server's hostname) []:www.xiaomag.com 指定给谁用
Email Address []:xiaomag@xiaomag.com 邮箱
(b)
将证书请求文件传输给CA
[root@Compro private]# scp httpd.csr
10.1.7.65:/etc/pki/CA/ 传输给7 上面的CA
(c) CA签署证书,并将证书颁发给请求者;opensslca
-in /tmp/httpd.csr–out /etc/pki/CA/certs/httpd.crt -days 365
[root@Compro 7 CA]# openssl ca -in httpd.csr -out certs/httpd.csr
注意:默认国家,省,公司名称必须和CA一致
(d) 查看证书中的信息:
格式语法:opensslx509 -in
/PATH/FROM/CERT_FILE -noout -text|subject|serial|dates
[root@Compro 7
CA]# openssl x509 -in cacert.pem -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 11582417720897023278 (0xa0bd038d0641ad2e)
Signature
Algorithm: sha256WithRSAEncryption
Issuer: C=CN, ST=beijing,
L=haidian, O=xiaomag.com, OU=FBI,
CN=centos7/emailAddress=xiaomage.com
Validity
Not
Before: Sep 23 06:45:30 2016 GMT
Not After : Sep 18 06:45:30 2036
GMT
Subject: C=CN, ST=beijing, L=haidian, O=xiaomag.com, OU=FBI,
CN=centos7/emailAddress=xiaomage.com
(4) 吊销证书
(a) 在客户端获取要吊销的证书的serial opensslx509 -in
/PATH/FROM/CERT_FILE-noout -serial -subject
(b)
在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致
吊销证书:opensslca
-revoke /etc/pki/CA/newcerts/SERIAL.pem
[root@Compro 7 ~]# openssl ca
-revoke /etc/pki/CA/certs/httpd.csr
(c)
生成吊销证书的编号(第一次吊销一个证书时才需要执行)
[root@Compro 7 ~]# echo 01 >
/etc/pki/CA/crlnumber
(d) 更新证书吊销列表
[root@Compro 7 ~]#
opensslca -gencrl -out /etc/pki/CA/crl/ca.crl
查看crl文件:
[root@Compro 7 ~]# openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text
原创文章,作者:小马哥,如若转载,请注明出处:http://www.178linux.com/48789
评论列表(1条)
自建CA一般而言用于内部测试常用,文章对CA主机的创建和证书颁发都有了一个完整的讲解,但是,整体的文章架构上是不是需要优化一下,层次感太弱了哦。