PKI、CA、SSL、TLS、OpenSSL几个概念
PKI 和 CA
PKI 就是 Public Key Infrastructure 的缩写,翻译过来就是公开密钥基础设施。它是利用公开密钥技术所构建的,解决网络安全问题的,普遍适用的一种基础设施。
PKI 主要由以下组件组成:
认证中心 CA(证书签发) ;
X.500目录服务器(证书保存) ;
具有高强度密码算法(SSL)的安全WWW服务器(即配置了 HTTPS 的 apache) ;
Web(安全通信平台): Web 有 Web Client 端和 Web Server 端两部分
自开发安全应用系统 自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。
CA 是 PKI 的”核心”,即数字证书的申请及签发机关,CA 必须具备权威性的特征,它负责管理 PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,CA 还要负责用户证书的黑名单登记和黑名单发布 。
CA 实现了 PKI 中一些很重要的功能:
接收验证最终用户数字证书的申请;
确定是否接受最终用户数字证书的申请-证书的审批;
向申请者颁发、拒绝颁发数字证书-证书的发放;
接收、处理最终用户的数字证书更新请求-证书的更新;
接收最终用户数字证书的查询、撤销;
产生和发布证书废止列表(CRL);
数字证书的归档;
密钥归档;
历史数据归档;
在这么多功能中,CA 的核心功能就是”发放”和”管理”数字证书:
SSL 和 TLS
SSL 和 TLS 协议是介于 HTTP 协议与 TCP 之间的一个可选层,主要用于 Web 客户端和服务器之间进行数据的安全传输:
SSL: Secure Socket Layer,安全套接字层,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
TLS: (Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。
SSL/TLS协议提供的服务主要有:
认证用户和服务器,确保数据发送到正确的客户机和服务器;
加密数据以防止数据中途被窃取;
维护数据的完整性,确保数据在传输过程中不被改变;
使用 OpenSSL 生产自签名 SSL 证书过程
1、修改 openssl 配置文件
vi /etc/pki/tls/openssl.cnf # match 表示后续生成的子证书的对应项必须和创建根证书时填的值一样,否则报错。以下配置只规定子证书的 countryName 必须和根证书一致。 [ policy_match ] 段配置改成如下: countryName = match stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional
2、在服务器 pki 的 CA 目录下新建两个文件
cd /etc/pki/CA && touch index.txt serial && echo 01 > serial
3、生成 CA 根证书密钥
cd /etc/pki/CA/ && openssl genrsa -out private/cakey.pem 2048 && chmod 400 private/cakey.pem
4、生成根证书(-x509自签的时候使用)
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
5、生成密钥文件(客户机器)
openssl genrsa -out docker.key 2048
6、生成证书请求文件(CSR):
openssl req -new -key docker.key -out docker.csr
7、使用 openssl 签署 CSR 请求,生成证书
openssl ca -in docker.csr -cert /etc/pki/CA/cacert.pem -keyfile /etc/pki/CA/private/cakey.pem -days 365 -out docker.crt
参数项说明: -in: CSR 请求文件 -cert: 用于签发的根 CA 证书 -keyfile: 根 CA 的私钥文件 -days: 生成的证书的有效天数 -out: 生成证书的文件名
8、查看证书信息
openssl -x509 -in docker.crt -noout --text openssl -x509 -in docker.crt -noout --subject openssl -x509 -in docker.crt -noout --serial
9、吊销证书
客户端获取要吊销证书的serial
openssl -x509 -in docker.crt -noout --serial
CA 先根据客户提交的serial与subject信息对比验证,是否与index.txt文件中的信息一致
openssl ca -revoke /etc/pki/CA/newcrets/01.pem
生成吊销证书的编号 第一次吊销一个证书时使用
echo 01> /etc/pki/CA/crlnuber
更新证书吊销列表
openssl ca -gencrl -out thisca.crl
查看crl文件
openssl crl -in thisca.crl -noout -text
共同学习,写下你的评论
评论加载中...
作者其他优质文章