搭建私有CA

本文介绍了如何搭建私有CA,包括理解CA和CA证书的概念,详细步骤涵盖生成openssl.cnf文件,创建并签署私钥,申请及颁发证书,以及证书的吊销过程。适合需要在局域网内实现安全通信的场景。
摘要由CSDN通过智能技术生成

搭建私有CA


前言

什么是CA

CA是Certificate Authority的缩写,也叫“证书授权中心”。
在web访问中为了保证web内容在网络中的安全传输,就需要用到SSL证书。而想要获得SSL证书就需要得到公认证书签发机构的签发,这些签发机构统称CA。CA主要负责签发证书、认证证书、管理已颁发证书的第三方机构,是PKI的核心。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。
一般来说,CA必须是所有行业和所有公众都信任的、认可的。因此它必须具有足够的权威性。

什么是CA证书

CA证书,顾名思义,就是CA颁发的证书
CA证书也是数字证书的一种,是通过数字签名实现的数字化证书, 具有不能被伪造的特点。是实现web安全通信中必不可少的一环。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。

获取CA证书两种方法
  1. 证书授权机构的颁发
    生成签名请求(csr)
    将csr发送给CA
    从CA处接收签名
  2. 自签名的证书颁发
    自已签发自己的公钥

现在在互联网上大行其道的https协议,就是通过CA证书的认证实现的。但证书虽好却价格昂贵,CA证书的使用者每年都需要向证书颁发机构缴纳一笔不菲的费用,如果搭建的网站只是供自己或局域网内使用,通过证书机构颁发证书就很不划算了。像这种情况,我们就可以通过搭建自己的私有CA来解决,实现局域网内web安全通信。
接下来我会详细介绍如何搭建私有CA,并实现证书的签发和管理。


openssl.cnf文件

想要搭建私有CA,/etc/pki/tls/目录下的openssl.cnf文件是你必须要了解的,文件内有关于CA的重要配置信息。

root&localhost: ~># cat /etc/pki/tls/openssl.cnf
                ……此处省略部分显示内容……
####################################################################
[ ca ]
default_ca  = CA_default        #指定默认使用的CA
####################################################################
[ CA_default ]

dir         = /etc/pki/CA       #CA的工作目录,所有与CA相关的信息都在此目录下
certs       = $dir/certs       #证书的存放路径,需人为指定才会将证书存放在此目录下。
crl_dir     = $dir/crl         #证书吊销列表的存放路径
database    = $dir/index.txt   #指定证书数据库文件所在的路径,index.txt文件用于存放证书数据,此文件默认没有,需手工创建。
#unique_subject = no            # Set to 'no' to allow creation of
                    # several ctificates with same subject.
new_certs_dir   = $dir/newcerts        #新证书的存放目录,新生成的证书默认存放于此目录下。

certificate = $dir/cacert.pem  #CA自身证书的所在路径
serial      = $dir/serial      #要颁发的下一个证书的编号,编号要求是16进制数,该文件需手工创建并写入编号。
crlnumber   = $dir/crlnumber   #下一个要被吊销的证书编号
                    # must be commented out to leave a V1 CRL
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        # Subject Name options
cert_opt    = ca_default        # Certificate field options

# Extension copying option: use with caution.
# copy_extensions = copy

# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
# so this is commented out by default to leave a V1 CRL.
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions    = crl_ext

default_days    = 365           #指定证书有效期,默认365天。
default_crl_days= 30            # how long before next CRL
default_md  = sha256        # use SHA-256 by default
preserve    = no            # keep passed DN ordering

# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy      = policy_match      #指定默认使用的CA策略

# For the CA policy
[ policy_match ]     #记录了CA搭建时和客户端向你申请证书时,提交信息的匹配策略。
countryName     = match     #省或州的名字
stateOrProvinceName = match     #城市名
organizationName    = match     #公司或组织名
organizationalUnitName  = optional      #公司或组织下的单位名
commonName      = supplied      #通用名,一般指定为网站的服务器域名,www.xxxx.com
emailAddress        = optional   #邮件地址
#match、optional、supplied分别代表三种不同的匹配策略,匹配、支持和可选。匹配指要求申
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值