为了账号安全,请及时绑定邮箱和手机立即绑定

OpenSSL 自签证书

标签:
容器 运维


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 的核心功能就是”发放”和”管理”数字证书:

https://img4.sycdn.imooc.com/5e6e642800018bea11780670.jpg

SSL 和 TLS

SSL 和 TLS 协议是介于 HTTP 协议与 TCP 之间的一个可选层,主要用于 Web 客户端和服务器之间进行数据的安全传输:

https://img1.sycdn.imooc.com/5e6e646e00011fc713180658.jpg

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 证书过程

https://img4.sycdn.imooc.com/5e6e64ff0001775b12881088.jpg

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消