摘要:涉及到网络安全这一块,想必大家都听过CA吧。像百度、淘宝、京东等这些知名网站,每年都要花费一笔money来买CA证书。但其实简单的企业内的CA认证,我们自己就可以实现,今天小编我就讲解一下怎么在企业局部实现CA认证。
2、PKI:PublicKeyInfrastructure
签证机构:CA(CertificateAuthority)
注册机构:RA
证书吊销列表:CRL
3、获取证书两种方法:
生成签名请求(csr)
将csr发送给CA
从CA处接收签名
自签名的证书
自已签发自己
4、实例:打开百度,按F12,可以查看百度的CA证书
1、原理介绍:
我们以A端为CA机构,B端是申请证书的公司
[CA_default]
dir=/etc/pki/CA#Whereeverythingiskept总目录,把总目录付给变量,下边都用变量表示
certs=$dir/certs#Wheretheissuedcertsarekept发布的证书,若干证书
crl_dir=$dir/crl#Wheretheissuedcrlarekept证书吊销列表
database=$dir/index.txt#databaseindexfile.文本文件,数据库,存放证书编号,简单的索引
#unique_subject=no#Setto'no'toallowcreationof是否允许多个证书用相同的subject(颁发给谁)
#severalctificateswithsamesubject.
new_certs_dir=$dir/newcerts#defaultplacefornewcerts.新颁发的证书放的地方
certificate=$dir/cacert.pem#TheCAcertificate证书文件,第一个是自签名证书
serial=$dir/serial#Thecurrentserialnumber下一个要颁发证书的编号
crlnumber=$dir/crlnumber#thecurrentcrlnumber吊销列表的编号
#mustbecommentedouttoleaveaV1CRL
crl=$dir/crl.pem#ThecurrentCRL吊销列表存放的文件
private_key=$dir/private/cakey.pem#Theprivatekey私钥放的地方
RANDFILE=$dir/private/.rand#privaterandomnumberfile随机数
3、申请证书时,要填写的必要信息
[policy_match]注意:match必须匹配,客户端申请证书和CA颁发填写的信息必须相同
countryName=match国家
stateOrProvinceName=match省、州
organizationName=match组织、公司名
organizationalUnitName=optional部门
commonName=supplied给哪个域名颁发
emailAddress=optional[policy_anything]邮件地址
3、B端证书申请及签署步骤:
①生成申请请求
②RA核验
③CA签署
④获取证书
1、创建所需要的文件(如果不创建,后边操作会出错)
touch/etc/pki/CA/index.txt生成证书索引数据库文件
echo99>/etc/pki/CA/serial指定第一个颁发证书的序列号,一般都是从01开始,也可以不从01开始,但一定要是2位或4位数,我们就以99为例
2、CA自签证书
①生成私钥
cd/etc/pki/CA/
(umask066;opensslgenrsa-out/etc/pki/CA/private/cakey.pem[-des3]2048)
可以加密,也可以不加密,加过密,后边每次都要输入,为了试验方便就不加密了,但加密更安全
tree/etc/pki/CA/可以看到cakey.pem生成了
②生成自签名证书
opensslreq-new-x509-key/etc/pki/CA/private/cakey.pem-days7300-out/etc/pki/CA/cacert.pem(req申请、-x509自签名、cacert.pem)
req:请求申请证书
-new:生成新证书签署请求
-x509:专用于CA生成自签证书
-key:生成请求时用到的私钥文件
-daysn:证书的有效期限
-out/PATH/TO/SOMECERTFILE:生成私钥证书的保存路径
③查看
cat/etc/pki/CA/cacert.pem生成的证书文件,直接cat不能看到信息,用下边的命令
opensslx509-in/etc/pki/CA/cacert.pem-noout-text(-text:生成的证书)
④也可以传到windows上查看,要改后缀,可以为cer/crt,不然不识别,sz发到windows上
1、centos6生成私钥
(umask066;opensslgenrsa-out/app/service.key2048)
2、利用私钥生成证书请求文件,在需要使用证书的主机生成证书请求
opensslreq-new-key/etc/pki/tls/private/test.key-days365-outetc/pki/tls/test.csr
3、将证书请求文件传输给CA
scp/app/service.csr192.168.30.107:/etc/pki/CA
1、为了方便管理,创建一个专门放请求的目录,把请求都放在这个目录下,不是必须的
mkdircsr
mvservice.csrcsr/
2、CA签署证书,并将证书颁发给请求者
opensslca-in/etc/pki/CA/csr/service.csr-out/etc/pki/CA/certs/service.crt-days100
注意:默认国家,省,公司名称三项必须和CA一致
签署后:会生成更新一些文件
3、查看证书中的信息:
opensslx509-in/etc/pki/CA/certs/service.crt-noout-text
opensslca-status99查看指定编号的证书状态
也可以传到windows上查看,看到更清楚,sz发到windows上
1、在客户端(A端)获取要吊销的证书的serial(编号)
opensslx509-in/PATH/FROM/CERT_FILE-noout-serial-subject
2、在CA(B端)上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,确认就吊销证书:
opensslca-revokenewcerts/99.pem
3、指定第一个吊销证书的编号
注意:第一次更新证书吊销列表前,才需要执行
echo01>/etc/pki/CA/crlnumber
4、更新证书吊销列表,将来将吊销的列表放到互联网上,让大家知道