基本概念
当我们访问一个网站时,如何确保所访问的站点是真实有效的而不是别人任意伪装的?即如何信任对方正式我们所需要访问的站点。CA就是一个对站点进行认证的签证机构。当我们对某个网站发起请求时,该站点服务器就会将其CA证书发送给我们的客户机,客户机则会核实该证书是否是由客户机信任的CA机构所签发,签名是否真实有效,证书是否过期等。
CA的签署其本质是将客户的提供的公钥进行授权,保存在自己存储中。
证书申请、签署基本流程
1、生成申请证书
2、RA(注册机构)核验
3、CA(签证机构)签署
4、获取证书
除此之外,还要CA进行自签证,即声明一个私有CA。具体流程如下:
1、CA自签证
# cd /etc/pki/CA
# touch index.txt #
# echo 01 > serial #签证序号,每签一个证书其序列号会增1
# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048) #生成密钥文件
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem #申请并自签证
选项说明:
-new:生成证书申请请求
-x509:签署证书,仅用于自签证
-key:知名证书申请的密钥文件
-days:证书有效期
-out:生成证书保存路径
随后的对话框依次填入信息:
国家(2字符)
省名
市名
公司名
部门名
服务器名称
邮箱地址
申请文件加密密码(两次),可不输入
2、客户发起证书申请
# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) #客户端生成key
# openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr #生成请求证书
注:这是私有CA,因此客户申请的公司名称要与CA公司名称保持一致
将证书申请发送给CA
3、RA审核通过,CA签证
# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
-in:指定证书申请文件
-out:生成已签证证书(.crt)
-days:签署证书有效期
4、客户获取已签证的证书
注:查看证书信息命令:
# openssl x509 -in /CRT_FILE -noout -text|-subject|serial
证书吊销
1、客户端将自己证书的serial和subject信息提交给CA
# openssl x509 -in /CRT_FILE -noout -subject #查看自己证书的serial和subject信息
2、CA审核该信息并与index.txt中内容对比,对比无误后吊销证书
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem #每签署一个证书时会在newcerts目录下得到一个以 序列号.pem 命名的文件
3、后续工作
生成吊销证书编号:如# echo 01 >/etc/pki/CA/crlnumber
更新吊销列表:# openssl ca -gencrl -out thisca.crl