OpenSSL:完成创立私有CA、签署证书恳求详解51CTO博客 - 威尼斯人

OpenSSL:完成创立私有CA、签署证书恳求详解51CTO博客

2019年03月08日14时00分07秒 | 作者: 冰蝶 | 标签: 证书,签署,恳求 | 浏览: 2948

一、OpenSSL:CA默许装备信息

    1.证书签发安排CA:公共信赖CA、私有CA

               树立私有CA办法如下:

小范围测验运用openssl、

大范围保护很多证书企业运用OpenCA(对openssl进行了二次封装,愈加方便运用)

  

     2.openssl 装备文件:/etc/pki/tls/openssl.cnf

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

该装备文件中以 "[装备段]",的办法装备相关信息

=

openssl.cnf部分内容摘要=

# OpenSSL example configuration file.

# This is mostly being used for generation of certificate requests.

[ ca ]         #CA相关装备段

default_ca        = CA_default                # The default ca section                 # 默许CA在[ CA_default ]装备

[ CA_default ]        #  默许作为CA的作业环境

dir                = /etc/pki/CA                # Where everything is kept默许作业目录,变量办法

certs                = $dir/certs                # Where the issued certs are kept签发的证书方位

crl_dir                = $dir/crl                # Where the issued crl are kept撤消的证书方位

database        = $dir/index.txt                  # database index file.颁发过的证书索引文件

new_certs_dir        = $dir/newcerts                # default place for new certs.

 

certificate        = $dir/cacert.pem         # The CA certificate指明CA的自签证书

serial                = $dir/serial                 # The current serial number指明当时证书序列号,榜首非必须指定

crlnumber        = $dir/crlnumber        # the current crl number

# must be commented out to leave a V1 CRL

crl                = $dir/crl.pem                 # The current CRL

private_key        = $dir/private/cakey.pem# The private key,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

 

default_days        = 365                        # how long to certify for证书的默许有用期

default_crl_days= 30                        # how long before next CRL默许声明有用期

default_md        = sha256                # use SHA-256 by default默许的生成算法

preserve        = no                        # keep passed DN ordering

[ req ]        # 向CA证书签署建议注册恳求相关特点

default_bits                = 2048

default_md                = sha256

default_keyfile         = privkey.pem

distinguished_name        = req_distinguished_name

attributes                = req_attributes

x509_extensions        = v3_ca        # The extentions to add to the self signed cert

=

 

 

 

 

二、OpenSSL:创立私有证书签发安排CA过程

在断定装备为CA的效劳器主机上生成一个自签证书,并为CA供给所需求的目录及文件;

在真实的通讯过程中CA效劳器主机不需求网络参加,只需求参加到签名中,不需求供给效劳

      1.生成私钥;

~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

    由于在默许装备文件中默许装备/etc/pki/CA/private/cakey.pem,所以指定目录和文件名要和装备文件共同

 

      2.生成CA自签证书;

              req - PKCS#10 certificate request and certificate generating utility,证书恳求及生成东西;

   [root@localhost tmp]# man req

  ~]# openssl req  -new  -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

                  /etc/pki/CA/cacert.pem:装备文件中榜首的目录及文件称号  

   -new:生成新证书签署恳求;

  -x509:生成自签格局证书,专用于创立私有CA时;

  -key:生成恳求时用到的私有文件途径;

  -out:生成的恳求文件途径;假如自签操作将直接生成签署过的证书;

  -days:证书的有用时长,单位是day;

 留意:

1)-key /etc/pki/CA/private/cakey.pem指明的是私钥的方位,常识由于此处会主动抽取出私钥中的公钥

2)req只能建议签署恳求,需求加-x509参数完成自己宣布恳求,自己签署。非自签无需添加此参数

[root@localhost tmp]#  openssl req  -new  -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

          填写证书恳求相关信息=

You are about to be asked to enter information that will be incorporated into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ., the field will be left blank.

-

Country Name (2 letter code) [XX]:      # 两个字符表明的国家代码,CN为我国

State or Province Name (full name) []:      # 省或洲的完好称号

Locality Name (eg, city) [Default City]:      # 地点方位的称号(默许为城市)

Organization Name (eg, company) [Default Company Ltd]:     # 安排安排称号(默许为公司)

Organizational Unit Name (eg, section) []:     # 安排安排单元称号(eg.部分)

Common Name (eg, your name or your servers hostname) []:     # 持有者名或许地点效劳器主机名(即域名)

Email Address []:     # 管理员邮件地址,能够省掉

       

   

      3.为CA供给所需的目录及文件;

            ~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}   #当不存在时需求创立签发证书、撤消证书、新证书目录

            ~]# touch  /etc/pki/CA/{serial,index.txt}   #创立证书序列号文件、证书索引文件

            ~]# echo  01 > /etc/pki/CA/serial          # 榜首次创立的时分需求给予证书序列号

 

 

 

 

三、OpenSSL;效劳恳求证书签署完成SSL安全通讯

     要用到证书进行安全通讯的效劳器,需求向CA恳求签署证书;

    需求签署的效劳无需和CA证书签署安排主机在同一台效劳器上。

        此处以httpd效劳为例进行演示,过程如下:

演示环境:

httpd效劳放置172.16.249.210主机(此处为rpm包装置)

 CA私有签安排放置172.16. 249.18主机:

  

      1.用到证书的效劳器生成私钥;

             ~]# mkdir  /etc/httpd/ssl  

             ~]# cd  /etc/httpd/ssl

             ~]# (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)   # 生成私钥

                  生成httpd效劳的私钥创立时分无需在/etc/pki/CA创立,/etc/pki/CA目录仅在创立CA主机时分

 

      2.生成证书签署恳求

            ~]# openssl  req  -new  -key  /etc/httpd/ssl/httpd.key  -out /etc/httpd/ssl/httpd.csr  -days  365

                    1) *.csr表明证书签署恳求文件

                    2)要确保和签署安排CA签署安排信息共同

 

      3.将恳求经过牢靠办法发送给CA主机

              ~]# scp  /etc/httpd/ssl/httpd.csr  root@172.16.249.18:/tmp/

 

      4.在CA主机上签署证书

             ~]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

                          *.crt:表明证书文件

                          -days :签署证书的有用期

 留意:此处需求自己去检查信息是否正确,并断定是否给予签署证书

 

      5.检查所签署的证书信息

              办法一:~]# cat  /etc/pki/CA/index.txt

                          V:表明现已签署的

                          01:表明证书序列号

                          /C=CN/ST=Beijing/O=… ...:  表明主题信息(主题标明)

             办法二:检查证书中的信息(CA或许效劳端均可):

            ~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

                           -serial :序列号   -subject:主题信息

   

      6.将CA签署安排的.crt证书发送给效劳器

           ~]#  scp  /etc/pki/CA/certs/httpd.crt  root@172.16.249.210:/etc/httpd/ssl

        留意:榜首次进行主机间依据ssh的scp操作会接纳一个证书,Queue要你那认证

     

    7.删去效劳器和CA主机上签署前的*.csr文件,确保安全

httpd主机:~]# rm  -rf  /etc/httpd/ssl/httpd.csr

CA主机:~]# rm  -rf  /tmp/httpd.csr

 

 

 

 

四、OpenSSL:私有CA证书签署安排撤消证书

    1.客户端获取要撤消的证书的serial(在运用证书的主机上履行)

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

   

    2.CA主机撤消证书

         先依据客户提交的serial和subject信息,比照其与本机数据库index.txt中存储的是否共同;

         在/etc/pki/CA/crets/*下生成证书后,会在/etc/pki/CA/newcrets/*以对应证书命名为SERIAL.pem文件寄存

     撤消:

  # openssl  ca  -revoke  /etc/pki/CA/newcerts/SERIAL.pem  其间SERIAL要换成证书真实的序列号:eg. 01.pem

   

    3.生成撤消证书的撤消编号(榜首次撤消证书时履行)

# echo  01  > /etc/pki/CA/crlnumber

 

    4.更新证书撤消列表

# openssl  ca  -gencrl  -out  thisca.crl

 

    5.检查crl文件:

# openssl  crl  -in  /PATH/FROM/CRL_FILE.crl  -noout  -text


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表威尼斯人立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章