linux-运维进阶-31 OpenSSL实现CA证书

linux-运维进阶-31 OpenSSL实现CA证书

OpenSSL实现CA证书

什么是CA

CA,Catificate Authority,通俗的理解就是一种认证机制。它的作用就是提供证书(也就是服务端证书,由域名,公司信息,序列号,签名信息等等组成)来加强客户端与服务器端访问信息的安全性,同时提供证书的发放等相关工作。国内的大部分互联网公司都在国际CA机构申请了CA证书,并且在用户进行访问的时候,对用户的信息加密,保障了用户的信息安全。理论上来说,任何组织或者个人都可以扮演CA的角色,只不过,难以得到客户端的信任,不能推而广之,最典型应用莫过于12306网站,这个网站就是自己给自己颁发的根证书。

目前能够让浏览器默认支持的CA大厂有很多,Windows 操作系统在安装之初,也默认安装了很多受信任的根证书。可以通过控制面板–Internet选项来进行查看。

另外,可以将证书理解为带有额外信息的公钥。

SSL/TLS

SSL/TLS是网络通信过程中非常重要的两个协议。互联网的通信安全就建立在SSL/TLS协议基础之上。他们通过一系列的加密行为保障了通信的安全,是如今互联网通信最主要的应用之一。

SSL/TLS是一个很大的互联网应用,关于他们的介绍互联网上有很多,我们暂时不做详细的介绍。关于SSL/TLS通信的过程大致可以用下面的这张图来进行描述。

十六字真诀

公钥加密,私钥解密
私钥签章,公钥验签

实验准备

CA服务器:192.168.141.132

客户机:192.168.141.69

物理机(就是你的电脑)

OpenSSL

OpenSSL是一套开源软件,在Linux中可以很容易的安装。它能够很容易的完成密钥生成以及证书管理。我们接下来就利用OpenSSL搭建CA证书,并实现证书的申请与分发。

[root@localhost ~]# yum install openssl –y

CA配置

要手动创建CA证书,就必须首先了解,OpenSSL中关于CA的配置,配置文件位于下面的/etc/pki/tls/openssl.cnf

[root@localhost ~]# cat /etc/pki/tls/openssl.cnf

####################################################################
[ ca ]
default_ca= CA_default      #默认CA
####################################################################
[ CA_default ]

dir=/etc/pki/CA     # CA的工作目录这里其实是定义了一个变量
certs= $dir/certs      # 证书存储路径
crl_dir= $dir/crl      # 证书吊销列表
database= $dir/index.txt   # 证书数据库列表


new_certs_dir= $dir/newcerts       #新的证书路径

certificate = $dir/cacert.pem  # CA自己的证书
serial= $dir/serial        #下一个证书的编号,十六进制,默认00
crlnumber= $dir/crlnumber  #下一个要被吊销的证书编号,十六进制,默认00
crl = $dir/crl.pem         # The current CRL
private_key = $dir/private/cakey.pem # CA 的私钥
RANDFILE= $dir/private/.rand   # private random number file

x509_extensions = usr_cert      # The extentions to add to the cert

# Comment out the following two lines for the "traditional"
# (and highly broken) format.
name_opt = ca_default       # 命名方式
cert_opt = ca_default       # CA的选项
default_days= 365           # 默认证书的有效期限
default_crl_days= 30            # how long before next CRL
default_md= default     # use public key default MD
preserve= no            # keep passed DN ordering

policy= policy_match    #策略
                                #这里记录的是 将来CA在搭建的时候,以及客户端申请证书的时候,
                                需要提交的信息的匹配程度。

[ policy_match ]                # match意味着CA以及子CA必须一致
countryName = match             # 国家
stateOrProvinceName= match      # 州或者省
organizationName= match         #组织公司
organizationalUnitName  = optional
commonName= supplied
emailAddress= optional

[ policy_anything ]             #可以对外提供证书申请,这时,证书的匹配就可以不用那么严格
countryName = optional
stateOrProvinceName = optional
localityName= optional
organizationName= optional
organizationalUnitName  = optional
commonName  = supplied
emailAddress= optional

找到配置文件中指定的路径

[root@localhost ~]# cat /etc/pki/tls/openssl.cnf | grep dir
dir		= /etc/pki/CA		# Where everything is kept

可以看到路径 /etc/pki/CA

创建所需要的文件

这里有一点需要注意,我们的实验环境中包含了一个主机,如果不提前创建这两个文件,那么在生成证书的过程中会出现错误。
  我们将文件创建在配置文件中指定的路径下面。

生成证书索引数据库文件 
[root@localhost ~]# tou
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值