签字证书请求详解,签署和自行建造CA

By admin in 美高梅手机版4858 on 2019年4月10日

openssl体系小说:http://www.cnblogs.com/f-ck-need-u/p/7048359.html**

用来签署证书请求、生成吊销列表CCR-VL以及维护已宣布证书列表和那一个证件景况的数据库。因为一般人无需治本crl,所以本文只介绍openssl
ca关于证书管理方面包车型大巴职能。

openssl ca(签署和自行建造CA),openssl签署自行建造ca

用以签署证书请求、生成吊销列表C福特ExplorerL以及保护已公布证书列表和这一个注解景况的数据库。因为相似人无需治本crl,所以本文只介绍openssl
ca关于证书管理方面包车型大巴作用。

证书请求文件使用CA的私钥签署之后正是注解,签署之后将证件发给申请者便是发布证书。在签订契约时,为了保障证书的完整性和壹致性,还相应对签署的注脚生成数字摘要,尽管用单向加密算法。

由于openssl
ca命令对配置文件(默许为/etc/pki/tls/openssl.cnf)的借助万分强,所以提议结合作者的另一篇小说配置文件openssl.cnf来读书,若是不晓得配置文件,下边包车型地铁始末很可能不知所云。

在布局文件中钦点了签名证书时所需文件的组织,暗中认可openssl.cnf中的结构供给如下:

[ CA_default ]
dir             = /etc/pki/CA             # 定义路径变量
certs           = $dir/certs              # 已颁发证书的保存目录
database        = $dir/index.txt          # 数据库索引文件
new_certs_dir   = $dir/newcerts           # 新签署的证书保存目录
certificate     = $dir/cacert.pem         # CA证书路径名
serial          = $dir/serial             # 当前证书序列号
private_key     = $dir/private/cakey.pem  # CA的私钥路径名

里头目录/etc/pki/CA/{certs,newcerts,private}在设置openssl后就暗中认可存在,所以无需独立创造,但证书的database文件index.txt和连串文件serial必须创设好,且类别号文件中得先给定二个序号,如”0一”。

[[email protected] tmp]# touch /etc/pki/CA/index.txt 

[[email protected] tmp]# echo "01" > /etc/pki/CA/serial

其它,要签名证书请求,需求CA自个儿的私钥文件以及CA自个儿的证件,先创设好CA的私钥,存放地方为布局文件中private_key所内定的值,暗许为/etc/pki/CA/private/cakey.pem。

[[email protected] tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem

(1).使用openssl ca自建CA

要提供CA本人的表明,测试环境下CA只可以自签订契约,使用”openssl req
-x50九”、”openssl x50九”和”openssl
ca”都能够自签定证书请求文件,此处仅介绍openssl ca命令自身自签订契约的艺术。

先创制CA的注明请求文件,提议采用CA的私钥文件/etc/pki/CA/private/cakey.pem来创立待自签署的证书请求文件,虽非必须,但方便管理。创建请求文件时,个中Country
Name、State or Province Name、Organization Name和Common
Name暗中认可是必须提供的。

[[email protected] tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:www.iwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

然后接纳openssl
ca命令自签署该证件请求文件。要是有五回交互式询问则意味自签定将打响,假设失利,则设想数据库文件index.txt是或不是创建、体系号文件serial是不是存在且有序号值、私钥文件cakey.pem是或不是路径正确、创设证书请求文件时是还是不是该提供的尚未提供等处境。

[[email protected] tmp]# openssl ca -selfsign -in rootCA.csr
Using configuration from /etc/pki/tls/openssl.cnf    # 默认采用/etc/pki/tls/openssl.cnf作为配置文件
Check that the request matches the signature         # 验证证书请求文件的数字签名,确保该证书请求文件是完整未修改过的
Signature ok
Certificate Details:                                 # 待生成证书的信息
        Serial Number: 1 (0x1)                        # 序列号为1
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT      # 证书有效期起始日为2017-6-17 10:06:29
            Not After : Jun 27 10:06:29 2018 GMT      # 证书有效期终止日为2018-6-17 10:06:29
        Subject:                                      # Subject信息,subject是非常重要的信息
            countryName               = CN
            stateOrProvinceName       = FJ
            organizationName          = JM
            organizationalUnitName    = IT
            commonName                = www.iwant.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

Certificate is to be certified until Jun 27 10:06:29 2018 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries           # 向数据库文件添加一条该证书的记录
Certificate:                                    # 该证书的信息
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT
            Not After : Jun 27 10:06:29 2018 GMT
        Subject: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:94:49:33:f4:90:a4:fc:a4:6b:65:75:4c:be:4f:
                    d1:3f:95:bd:24:60:c8:45:f9:eb:00:31:ac:45:6b:
                    ae:bb:63:bf:f2:a3:0c:e3:d3:50:20:33:1e:d9:e1:
                    8a:49:42:c6:e0:67:6d:3a:cb:2f:9c:90:ab:4c:10:
                    7a:4a:82:e1:6e:a0:6a:63:84:56:1c:a2:5f:11:60:
                    99:e0:cd:20:68:e9:98:40:68:c2:43:7c:97:12:ee:
                    31:8e:b1:73:7d:36:99:97:49:31:50:c1:8c:47:10:
                    16:f9:5d:37:11:00:73:3b:01:62:9b:36:36:97:08:
                    48:31:93:56:3f:6a:d9:a6:99
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

    Signature Algorithm: sha1WithRSAEncryption
         1e:4e:f4:e4:c9:33:52:85:69:ae:b4:2a:37:37:44:90:9b:52:
         b3:e9:89:1c:b2:f2:17:41:d8:05:02:63:9a:4f:64:4d:c9:ce:
         0c:81:48:22:4f:73:8a:4c:f7:b8:bf:64:b2:77:8a:2e:43:80:
         39:03:de:27:19:09:d2:88:39:11:8f:8b:4b:37:c0:12:68:ef:
         79:5b:28:d4:cf:c9:b8:e1:77:24:6e:b4:5b:83:4a:46:49:a1:
         ad:5c:b7:d8:da:49:9a:45:73:b9:8e:eb:1a:9c:2e:6c:70:d3:
         c5:db:9c:46:02:59:42:bf:ad:bc:21:4c:d1:6b:6b:a7:87:33:
         1a:6b
-----BEGIN CERTIFICATE-----
MIICiTCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJDTjEL
MAkGA1UECAwCRkoxCzAJBgNVBAoMAkpNMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwN
d3d3Lml3YW50LmNvbTAeFw0xNzA2MjcxMDA2MjlaFw0xODA2MjcxMDA2MjlaMEwx
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UECgwCSk0xCzAJBgNVBAsM
AklUMRYwFAYDVQQDDA13d3cuaXdhbnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCUSTP0kKT8pGtldUy+T9E/lb0kYMhF+esAMaxFa667Y7/yowzj01Ag
Mx7Z4YpJQsbgZ206yy+ckKtMEHpKguFuoGpjhFYcol8RYJngzSBo6ZhAaMJDfJcS
7jGOsXN9NpmXSTFQwYxHEBb5XTcRAHM7AWKbNjaXCEgxk1Y/atmmmQIDAQABo3sw
eTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpQ3d1kfGJHQg9GJ39qljPlLSimYwHwYDVR0j
BBgwFoAUpQ3d1kfGJHQg9GJ39qljPlLSimYwDQYJKoZIhvcNAQEFBQADgYEAHk70
5MkzUoVprrQqNzdEkJtSs+mJHLLyF0HYBQJjmk9kTcnODIFIIk9zikz3uL9ksneK
LkOAOQPeJxkJ0og5EY+LSzfAEmjveVso1M/JuOF3JG60W4NKRkmhrVy32NpJmkVz
uY7rGpwubHDTxducRgJZQr+tvCFM0Wtrp4czGms=
-----END CERTIFICATE-----
Data Base Updated

自签署成功后,在/etc/pki/CA目录下将生成一多元文件。

[[email protected] tmp]# tree -C /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

个中newcerts目录下的0一.pem即为刚才自签定的注解文件,因为它是CA本人的证件,所以基于安排文件中的”certificate=$dir/cacert.pem”项,应该将其放入/etc/pki/CA目录下,且命名叫cacert.pem,唯有这么未来才能签署任何证书请求。

[[email protected] tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem

迄今,自行建造CA就到位了,查看下数据库索引文件和种类号文件。

[[email protected] tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com

[[email protected] tmp]# cat /etc/pki/CA/serial
02

那么,下次签字证书请求时,系列号将是”02″。

将上述自行建造CA的进度总结如下:

[[email protected] tmp]# touch /etc/pki/CA/index.txt 
[[email protected] tmp]# echo "01" > /etc/pki/CA/serial
[[email protected] tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem
[[email protected] tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
[[email protected] tmp]# openssl ca -selfsign -in rootCA.csr
[[email protected] tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem

上述进度是一心读取暗许配置文件创造的,其实过多进程是不曾那么严谨的,openssl
ca命令自身能够内定很多抉择覆盖配置文件中的项,但既然提供了暗许的安顿文件及目录结构,为了方便管理,仍旧建议完全使用配备文件中的项。

(二).为旁人颁发证书。

首先申请者创立3个证书请求文件。

[[email protected] tmp]# openssl req -new -key privatekey.pem -out youwant1.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.youwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

中间Country Name、State or Province Name、Organization Name和Common
Name必须提供,且前3者必须和CA的subject中的对应项完全相同。那几个是由布置文件中的相配策略决定的。

[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ]
policy          = policy_match
[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

“match”表示openssl
ca要签署的证件请求文件中的项要和CA证书中的项相配,即要相同,”supplied”表示必供给提供的项,”optional”表示可挑选,所以能够留空。

当今就能够将证件请求文件发送给CA,让CA帮助签署。

[[email protected] tmp]# openssl ca -in youwant1.csr

署名成功后,查看下/etc/pki/CA下的文本结构。

[[email protected] tmp]# tree -C /etc/pki/CA/
/etc/pki/CA/
├── cacert.pem
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── newcerts
│   ├── 01.pem
│   └── 02.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

4 directories, 10 files

中间”0二.pem”正是刚刚签署成功的注解,将此证书发送给申请者即表示颁发完结。

再看下数据库索引文件和类别号文件。

[[email protected] tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com
V       180627110022Z           02      unknown /C=CN/ST=FJ/O=JM/CN=www.youwant.com

[[email protected] tmp]# cat /etc/pki/CA/serial
03

(三).openssl ca命令用法

透过地点的言传身教,应该对openssl
ca命令的用法大概明白了,上边是其完整的用法表明,不包罗crl相关功用。

openssl ca [-verbose] [-config filename] [-name section] [-startdate date] [-enddate date] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin arg] [-cert file]
[-selfsign] [-in file] [-out file] [-notext] [-outdir dir] [-infiles] [-ss_cert file] [-preserveDN] [-noemailDN] [-batch] [-extensions section] [-extfile section] [-subj arg] [-utf8]

要留心,ca命令是用于签署证书的,所以它所供给的文件除了配备文件外正是私钥文件和证件请求文件,而签名后生成的文本是证书文件,因而使用”-in”钦定的目的是待签署文件,”-infiles”则是点名四个待签署文件,”-keyfile”是钦定私钥文件,”-out”是点名输出的注脚文件。

【选项说明:】
-config filename :指定要使用的配置文件,指定后将忽略openssl.cnf中指定的关于ca的配置选项。
-name section    :指定使用配置文件中的那个section。指定后将忽略openssl.cnf中的default_ca段。
-in filename     :指定要被CA签署的单个证书请求文件。根CA为其他证书签署时使用。
-infiles         :该选项只能是最后一个选项,该选项所接的所有参数都被认为是要被签署的证书请求文件,即一次性签署多个请求文件时使用的选项。
-selfsign        :自签署。指定-ss_cert选项时该选项被忽略。
-ss_cert filename:将被CA自签署的单个证书文件。也就是说要重新签署证书。
-out filename    :证书的输出文件,同时也会输出到屏幕。不指定时默认输出到stdout。
-outdir dir_name :证书的输出目录。指定该选项时,将自动在此目录下生成一个文件名包含16进制serial值的".pem"证书文件。
-cert            :CA自己的证书文件。
-keyfile filename:指定签署证书请求时的私钥文件,即CA自己的私钥文件。
-key passwd_value:指定私钥的加密密码。
-passin arg      :传递解密密码
-verbose         :打印操作执行时的详细信息
-notext          :禁止以文本格式将证书输出到"-out"指定的文件中
-days arg        :证书有效期限,从创建时刻开始算startdate,有效期结束点为enddate。
-startdate       :自定义证书的开始时间,和"-enddate"一起使用可以推算出证书有效期。
-enddate         :自定义证书的结束时间。
-md alg          :指定单向加密算法
-policy arg      :该选项是配置文件中的section内容,该选项指定了证书信息中的field部分是否需要强制提供还是要强制匹配,
                 :或者可提供可不提供。详细的见配置文件说明。
-extensions section:指定当前创建的证书使用配置文件中的哪个section作为扩展属性。
-batch           :签署时使用批处理模式,即非交互模式。该模式下不会有两次询问(是否签署、是否提交)。
-subj arg        :替换证书请求中的subject,格式/type0=value0/type1=value1/type2=...

布署文件有关ca的局地,在那之中被标记为必须项的意味配置文件中依然命令行中必须付出该选拔及其值。

new_certs_dir    :等同于"-outdir"选项。必须项
certificat       :等同于"-cert"选项,CA自己的证书文件。必须项
private_key      :等同于"-keyfile"选项,签署证书请求文件时的私钥文件,即CA自己的私钥文件。必须项
default_days     :等同于"-days"选项
default_startdate:等同于"-startdate"选项。
default_enddate  :等同于"-enddate"选项。
default_md       :等同于"-md"选项。必须项
database         :openssl维护的数据库文件。存放证书条目信息及状态信息。必须项
serial           :已颁发证书的序列号(16进制)文件。必须项且该文件中必须存在一个序列值
unique_subject   :如果设置为yes,database中的subject列值必须不重复。如果设置为no,允许subject重复。默认是yes,
                 :这是为了兼容老版本的Openssl,推荐设置为no。
x509_extensions  :等同于"-extensions"选项。
policy           :等同于"-policy"选项。必须项
name_opt/cert_opt:证书的展示格式,虽非必须但建议设置为ca_default,若不设置将默认使用老版本的证书格式(不建议如此)。
                 :伪命令ca无法直接设置这两个选项,而伪命令x509的"-nameopt"和"-certopt"选项可以分别设置。
copy_extensions  :决定证书请求中的扩展项如何处理的。如果设置为none或不写该选项,则扩展项被忽略并且不复制到证书中去。
                 :如果设置为copy,则证书请求中已存在而证书中不存在的扩展项将复制到证书中。
                 :如果设置为copyall,则证书请求中所有的扩展项都复制到证书中,此时若证书中已存在某扩展项,则先删除再复制。
                 :该选项的主要作用是允许证书请求为特定的扩展项如subjectAltName提供值。
                 :使用该选项前请先查看man ca中的WARNINGS部分。建议一般简单使用时设置为none或不设置。

 

归来openssl系列小说大纲:

OpenSSL:达成创立私有CA、签署证书请求详解

1、OpenSSL:CA默许配置音讯

   
一.证书签发机关CA:公共信任CA、私有CA

美高梅手机版4858 ,   
          建立私有CA情势如下:

小范围测试使用openssl、

大范围维护多量注解公司应用OpenCA(对openssl实行了1遍封装,越发方便使用)

 

   
贰.openssl 安顿文件:/etc/pki/tls/openssl.cnf

     [[email protected]
tmp]# cat  /etc/pki/tls/openssl.cnf

该配置文件中以
“[配置段]”,的情势计划相关音信

====================================openssl.cnf部分内容摘要=====================================

#签字证书请求详解,签署和自行建造CA。 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指明当前声明体系号,第3回要钦定

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 C昂CoraL暗许阐明有效期

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

===============================================================================================

 

 

 

 

2、OpenSSL:创立私有证书签发机关CA步骤

在鲜明布署为CA的服务器主机上生成二个自签证书,并为CA提供所急需的目录及文件;

在真的的通讯进度中CA服务器主机不供给互连网参预,只须求参加到签订契约中,不需求提供劳动

      1.生成私钥;

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

    因为在默许配置文件中暗中同意配置/etc/pki/CA/private/cakey.pem,所以内定目录和文件名要和配备文件一律

美高梅手机版4858 1

 

      2.生成CA自签证书;

             
req – PKCS#十certificate request and certificate generating utility,证书请求及变化学工业具;

  [[email protected]
tmp]# man req

美高梅手机版4858 2

  ~]# 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:生成新证书签署请求;

  -x50玖:生成自签格式证书,专用于创建私有CA时;

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

  -out:生成的乞请文件路径;假设自签操作将直接扭转签署过的证书;

  -days:证书的有效时间长度,单位是day;

 注意:

壹)-key
/etc/pki/CA/private/cakey.pem指明的是私钥的地方,知识因为此处会自动抽取出私钥中的公钥

二)req只好发起签名请求,必要加-x50玖参数达成团结发出请求,本人签名。非自签无需追加此参数

美高梅手机版4858 3

[[email protected]
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 incorporatedinto 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 server’s hostname) []:    # 持有者名也许所在服务器主机名(即域名)

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


证件请求文件使用CA的私钥签署之后就是注解,签署之后将表明发给申请者正是公布证书。在签署时,为了确认保证障书的完整性和一致性,还应该对签署的声明生成数字摘要,即使用单向加密算法。

转发请表明出处:

ca(签署和自行建造CA),openssl签署自行建造ca
用于签署证书请求、生成吊销列表CSportageL以及维护已透露证书列表和那一个证件景况的数据库。因为1般…

       

   

      三.为CA提供所需的目录及文件;

           
~]# mkdir 
-pv  /etc/pki/CA/{certs,crl,newcerts}  #当不设有时索要创建签发证书、吊销证书、新证书目录

           
~]# touch 
/etc/pki/CA/{serial,index.txt}  #创办理公证事务书种类号文件、证书索引文件

           
~]# echo  01
> /etc/pki/CA/serial          # 第贰次创制的时候必要予以证书体系号

美高梅手机版4858 4

 

 

 

 

叁、OpenSSL;服务申请证书签署实现SSL安全通讯

    要用到证书进行安全通讯的服务器,须求向CA请求签署证书;

    需求签字的劳动无需和CA证书签署机构主机在同样台服务器上。

        此处以httpd服务为例实行出现说法,步骤如下:

以身作则环境:

httpd服务放置17二.1陆.24九.2拾主机(此处为rpm包安装)

美高梅手机版4858 5

 CA私有签机构放置172.1陆.
24九.1八主机:

美高梅手机版4858 6

 

   
  壹.用到证书的服务器生成私钥;

            ~]# 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主机时候

美高梅手机版4858 7

 

      二.生成证书签署请求

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

                    1)
*.csr代表证书签署请求文件

                   
贰)要确认保证和签字机构CA签署机构音信一致

美高梅手机版4858 8

 

      3.将请求通过保证办法发送给CA主机

              ~]# scp 
/etc/httpd/ssl/httpd.csr 
[email protected]:/tmp/

美高梅手机版4858 9

 

      四.在CA主机上签名证书

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

                       
  *.crt:表示证书文件

                       
  -days :签署证书的有效期

 注意:此处须求团结去查看音讯是不是正确,并显著是或不是予以签署证书

美高梅手机版4858 10

 

   
  5.查看所签署的证件消息

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

美高梅手机版4858 11

                       
  V:表示已经签署的

                       
  0壹:表示证书种类号

                       
  /C=CN/ST=Beijing/O=… …:  代表宗旨音信(主旨标示)

   
        方法二:查看证书中的新闻(CA也许服务端均可):

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

                       
  -serial
:种类号  -subject:大旨信息

美高梅手机版4858 12

   

   
  陆.将CA签署机构的.crt证书发送给服务器

          ~]#
 scp  /etc/pki/CA/certs/httpd.crt 
[email protected]:/etc/httpd/ssl

        注意:第二遍开始展览主机间基于ssh的scp操作会接收三个评释,Queue要你这表达

美高梅手机版4858 13

     

   
柒.删减服务器和CA主机上签署前的*.csr文件,确认保证卫安全全

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

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

 

 

 

 

四、OpenSSL:私有CA证书签署机构注销证书

   
一.客户端获取要注销的证件的serial(在采用证书的主机上实施)

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

美高梅手机版4858 14

   

    2.CA主机吊销证书

        先依据客户提交的serial和subject音信,相比其与本机数据库index.txt中存款和储蓄的是否1律;

        在/etc/pki/CA/crets/*下生成证书后,会在/etc/pki/CA/newcrets/*以对应证书命名称为SE福睿斯IAL.pem文件存放

美高梅手机版4858 15

   
 吊销:

  # openssl  ca  -revoke 
/etc/pki/CA/newcerts/SE昂科雷IAL.pem  个中SE汉兰达IAL要换来证书真正的系列号:eg. 0一.pem

美高梅手机版4858 16

   

    叁.生成吊销证书的打消编号(第三遍撤除证书时实施)

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

美高梅手机版4858 17

 

    四.翻新证书吊销列表

# openssl  ca  -gencrl  -out  thisca.crl

美高梅手机版4858 18

 

    5.查看crl文件:

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

更加多OpenSSL相关内容能够查阅以下的有用链接: 

采纳 OpenSSL 命令行营造 CA 及证书 

Ubuntu安装OpenSSL 

经过OpenSSL提供FTP+SSL/TLS认证作用,并落到实处平安数据传输

Linux下使用OpenSSL生成证书

利用OpenSSL签署多域名证书

在OpenSSL中添加自定义加密算法 

OpenSSL 的事无巨细介绍:请点那里
OpenSSL 的下载地址:请点那里

正文永久更新链接地址:

1、
OpenSSL : CA 暗中同意配置音信 一. 证书签发机关 CA : 公共信任 CA 、私有 CA
建立民用 CA 形式如…

用来签署证书请求、生成吊销列表C牧马人L以及维护已表露证书列表和这个证件情形的数据库。因为相似人无需治本crl,所以本文只介绍openssl
ca关于证书管理方面包车型地铁效用。

出于openssl
ca命令对配备文件(默许为/etc/pki/tls/openssl.cnf)的注重相当强,所以提议结合自身的另一篇小说布置文件openssl.cnf来读书,假使不知情配置文件,下边包车型大巴始末很或者不知所云。

注明请求文件使用CA的私钥签署之后正是证书,签署之后将证书发给申请者正是发布证书。在签名时,为了确定保障障书的完整性和壹致性,还应有对签署的证书生成数字摘要,就算用单向加密算法。

在计划文件中钦命了签名证书时所需文件的协会,暗中认可openssl.cnf中的结构要求如下:

出于openssl
ca命令对配备文件(暗中同意为/etc/pki/tls/openssl.cnf)的依赖性卓殊强,所以提出结合自身的另1篇小说配置文件openssl.cnf来读书,倘诺不精通配置文件,下边的始末很只怕不知所云。

[ CA_default ]
dir             = /etc/pki/CA             # 定义路径变量
certs           = $dir/certs              # 已颁发证书的保存目录
database        = $dir/index.txt          # 数据库索引文件
new_certs_dir   = $dir/newcerts           # 新签署的证书保存目录
certificate     = $dir/cacert.pem         # CA证书路径名
serial          = $dir/serial             # 当前证书序列号
private_key     = $dir/private/cakey.pem  # CA的私钥路径名

在安插文件中钦定了签字证书时所需文件的构造,暗中同意openssl.cnf中的结构须求如下:

内部目录/etc/pki/CA/{certs,newcerts,private}在装置openssl后就私下认可存在,所以无需独立创制,但证书的database文件index.txt和类别文件serial必须创设好,且体系号文件中得先给定叁个序号,如”0壹”。

[ CA_default ]
dir             = /etc/pki/CA             # 定义路径变量
certs           = $dir/certs              # 已颁发证书的保存目录
database        = $dir/index.txt          # 数据库索引文件
new_certs_dir   = $dir/newcerts           # 新签署的证书保存目录
certificate     = $dir/cacert.pem         # CA证书路径名
serial          = $dir/serial             # 当前证书序列号
private_key     = $dir/private/cakey.pem  # CA的私钥路径名
[root@xuexi tmp]# touch /etc/pki/CA/index.txt 

[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial

中间目录/etc/pki/CA/{certs,newcerts,private}在设置openssl后就暗许存在,所以无需独立创设,但证书的database文件index.txt和系列文件serial必须创设好,且种类号文件中得先给定一个序号,如”0一”。

其它,要签字证书请求,要求CA自个儿的私钥文件以及CA本身的注脚,先创建好CA的私钥,存放地点为布局文件中private_key所钦定的值,暗许为/etc/pki/CA/private/cakey.pem。

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 

[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem

其它,要签字证书请求,要求CA自个儿的私钥文件以及CA自身的表明,先创立好CA的私钥,存放地方为布局文件中private_key所钦定的值,暗中同意为/etc/pki/CA/private/cakey.pem。

(1).使用openssl ca自建CA

[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem

要提供CA本身的注解,测试环境下CA只能自签约,使用”openssl req
-x509″、”openssl x50玖”和”openssl
ca”都能够自签署证书请求文件,此处仅介绍openssl ca命令本身自签约的措施。

(1).使用openssl ca自建CA

先创制CA的证书请求文件,提议接纳CA的私钥文件/etc/pki/CA/private/cakey.pem来创建待自签订契约的证件请求文件,虽非必须,但方便管理。创建请求文件时,当中Country
Name、State or Province Name、Organization Name和Common
Name暗许是必须提供的。

要提供CA本人的评释,测试环境下CA只好自签定,使用”openssl req
-x50九”、”openssl x50九”和”openssl
ca”都足以自签署证书请求文件,此处仅介绍openssl ca命令自身自签定的办法。

[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:www.iwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

先创设CA的证书请求文件,提议利用CA的私钥文件/etc/pki/CA/private/cakey.pem来创设待自签约的证件请求文件,虽非必须,但方便管理。创制请求文件时,其中Country
Name、State or Province Name、Organization Name和Common
Name默认是必须提供的。

然后接纳openssl
ca命令自签订契约该证件请求文件。假使有五回交互式询问则象征自签定将不负众望,假使失败,则设想数据库文件index.txt是还是不是创造、系列号文件serial是或不是存在且有序号值、私钥文件cakey.pem是还是不是路径正确、成立证书请求文件时是还是不是该提供的尚未提供等情事。

[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:www.iwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
Using configuration from /etc/pki/tls/openssl.cnf    # 默认采用/etc/pki/tls/openssl.cnf作为配置文件
Check that the request matches the signature         # 验证证书请求文件的数字签名,确保该证书请求文件是完整未修改过的
Signature ok
Certificate Details:                                 # 待生成证书的信息
        Serial Number: 1 (0x1)                        # 序列号为1
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT      # 证书有效期起始日为2017-6-17 10:06:29
            Not After : Jun 27 10:06:29 2018 GMT      # 证书有效期终止日为2018-6-17 10:06:29
        Subject:                                      # Subject信息,subject是非常重要的信息
            countryName               = CN
            stateOrProvinceName       = FJ
            organizationName          = JM
            organizationalUnitName    = IT
            commonName                = www.iwant.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

Certificate is to be certified until Jun 27 10:06:29 2018 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries           # 向数据库文件添加一条该证书的记录
Certificate:                                    # 该证书的信息
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT
            Not After : Jun 27 10:06:29 2018 GMT
        Subject: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:94:49:33:f4:90:a4:fc:a4:6b:65:75:4c:be:4f:
                    d1:3f:95:bd:24:60:c8:45:f9:eb:00:31:ac:45:6b:
                    ae:bb:63:bf:f2:a3:0c:e3:d3:50:20:33:1e:d9:e1:
                    8a:49:42:c6:e0:67:6d:3a:cb:2f:9c:90:ab:4c:10:
                    7a:4a:82:e1:6e:a0:6a:63:84:56:1c:a2:5f:11:60:
                    99:e0:cd:20:68:e9:98:40:68:c2:43:7c:97:12:ee:
                    31:8e:b1:73:7d:36:99:97:49:31:50:c1:8c:47:10:
                    16:f9:5d:37:11:00:73:3b:01:62:9b:36:36:97:08:
                    48:31:93:56:3f:6a:d9:a6:99
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

    Signature Algorithm: sha1WithRSAEncryption
         1e:4e:f4:e4:c9:33:52:85:69:ae:b4:2a:37:37:44:90:9b:52:
         b3:e9:89:1c:b2:f2:17:41:d8:05:02:63:9a:4f:64:4d:c9:ce:
         0c:81:48:22:4f:73:8a:4c:f7:b8:bf:64:b2:77:8a:2e:43:80:
         39:03:de:27:19:09:d2:88:39:11:8f:8b:4b:37:c0:12:68:ef:
         79:5b:28:d4:cf:c9:b8:e1:77:24:6e:b4:5b:83:4a:46:49:a1:
         ad:5c:b7:d8:da:49:9a:45:73:b9:8e:eb:1a:9c:2e:6c:70:d3:
         c5:db:9c:46:02:59:42:bf:ad:bc:21:4c:d1:6b:6b:a7:87:33:
         1a:6b
-----BEGIN CERTIFICATE-----
MIICiTCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJDTjEL
MAkGA1UECAwCRkoxCzAJBgNVBAoMAkpNMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwN
d3d3Lml3YW50LmNvbTAeFw0xNzA2MjcxMDA2MjlaFw0xODA2MjcxMDA2MjlaMEwx
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UECgwCSk0xCzAJBgNVBAsM
AklUMRYwFAYDVQQDDA13d3cuaXdhbnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCUSTP0kKT8pGtldUy+T9E/lb0kYMhF+esAMaxFa667Y7/yowzj01Ag
Mx7Z4YpJQsbgZ206yy+ckKtMEHpKguFuoGpjhFYcol8RYJngzSBo6ZhAaMJDfJcS
7jGOsXN9NpmXSTFQwYxHEBb5XTcRAHM7AWKbNjaXCEgxk1Y/atmmmQIDAQABo3sw
eTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpQ3d1kfGJHQg9GJ39qljPlLSimYwHwYDVR0j
BBgwFoAUpQ3d1kfGJHQg9GJ39qljPlLSimYwDQYJKoZIhvcNAQEFBQADgYEAHk70
5MkzUoVprrQqNzdEkJtSs+mJHLLyF0HYBQJjmk9kTcnODIFIIk9zikz3uL9ksneK
LkOAOQPeJxkJ0og5EY+LSzfAEmjveVso1M/JuOF3JG60W4NKRkmhrVy32NpJmkVz
uY7rGpwubHDTxducRgJZQr+tvCFM0Wtrp4czGms=
-----END CERTIFICATE-----
Data Base Updated

下一场利用openssl
ca命令自签定该证件请求文件。假如有五次交互式询问则表示自签署将成功,假如失利,则设想数据库文件index.txt是或不是创立、连串号文件serial是或不是留存且有序号值、私钥文件cakey.pem是或不是路径正确、创造证书请求文件时是或不是该提供的远非提供等景况。

自签署成功后,在/etc/pki/CA目录下将生成一雨后冬笋文件。

[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
Using configuration from /etc/pki/tls/openssl.cnf    # 默认采用/etc/pki/tls/openssl.cnf作为配置文件
Check that the request matches the signature         # 验证证书请求文件的数字签名,确保该证书请求文件是完整未修改过的
Signature ok
Certificate Details:                                 # 待生成证书的信息
        Serial Number: 1 (0x1)                        # 序列号为1
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT      # 证书有效期起始日为2017-6-17 10:06:29
            Not After : Jun 27 10:06:29 2018 GMT      # 证书有效期终止日为2018-6-17 10:06:29
        Subject:                                      # Subject信息,subject是非常重要的信息
            countryName               = CN
            stateOrProvinceName       = FJ
            organizationName          = JM
            organizationalUnitName    = IT
            commonName                = www.iwant.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

Certificate is to be certified until Jun 27 10:06:29 2018 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries           # 向数据库文件添加一条该证书的记录
Certificate:                                    # 该证书的信息
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Validity
            Not Before: Jun 27 10:06:29 2017 GMT
            Not After : Jun 27 10:06:29 2018 GMT
        Subject: C=CN, ST=FJ, O=JM, OU=IT, CN=www.iwant.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:94:49:33:f4:90:a4:fc:a4:6b:65:75:4c:be:4f:
                    d1:3f:95:bd:24:60:c8:45:f9:eb:00:31:ac:45:6b:
                    ae:bb:63:bf:f2:a3:0c:e3:d3:50:20:33:1e:d9:e1:
                    8a:49:42:c6:e0:67:6d:3a:cb:2f:9c:90:ab:4c:10:
                    7a:4a:82:e1:6e:a0:6a:63:84:56:1c:a2:5f:11:60:
                    99:e0:cd:20:68:e9:98:40:68:c2:43:7c:97:12:ee:
                    31:8e:b1:73:7d:36:99:97:49:31:50:c1:8c:47:10:
                    16:f9:5d:37:11:00:73:3b:01:62:9b:36:36:97:08:
                    48:31:93:56:3f:6a:d9:a6:99
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66
            X509v3 Authority Key Identifier:
                keyid:A5:0D:DD:D6:47:C6:24:74:20:F4:62:77:F6:A9:63:3E:52:D2:8A:66

    Signature Algorithm: sha1WithRSAEncryption
         1e:4e:f4:e4:c9:33:52:85:69:ae:b4:2a:37:37:44:90:9b:52:
         b3:e9:89:1c:b2:f2:17:41:d8:05:02:63:9a:4f:64:4d:c9:ce:
         0c:81:48:22:4f:73:8a:4c:f7:b8:bf:64:b2:77:8a:2e:43:80:
         39:03:de:27:19:09:d2:88:39:11:8f:8b:4b:37:c0:12:68:ef:
         79:5b:28:d4:cf:c9:b8:e1:77:24:6e:b4:5b:83:4a:46:49:a1:
         ad:5c:b7:d8:da:49:9a:45:73:b9:8e:eb:1a:9c:2e:6c:70:d3:
         c5:db:9c:46:02:59:42:bf:ad:bc:21:4c:d1:6b:6b:a7:87:33:
         1a:6b
-----BEGIN CERTIFICATE-----
MIICiTCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBMMQswCQYDVQQGEwJDTjEL
MAkGA1UECAwCRkoxCzAJBgNVBAoMAkpNMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwN
d3d3Lml3YW50LmNvbTAeFw0xNzA2MjcxMDA2MjlaFw0xODA2MjcxMDA2MjlaMEwx
CzAJBgNVBAYTAkNOMQswCQYDVQQIDAJGSjELMAkGA1UECgwCSk0xCzAJBgNVBAsM
AklUMRYwFAYDVQQDDA13d3cuaXdhbnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCUSTP0kKT8pGtldUy+T9E/lb0kYMhF+esAMaxFa667Y7/yowzj01Ag
Mx7Z4YpJQsbgZ206yy+ckKtMEHpKguFuoGpjhFYcol8RYJngzSBo6ZhAaMJDfJcS
7jGOsXN9NpmXSTFQwYxHEBb5XTcRAHM7AWKbNjaXCEgxk1Y/atmmmQIDAQABo3sw
eTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBD
ZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUpQ3d1kfGJHQg9GJ39qljPlLSimYwHwYDVR0j
BBgwFoAUpQ3d1kfGJHQg9GJ39qljPlLSimYwDQYJKoZIhvcNAQEFBQADgYEAHk70
5MkzUoVprrQqNzdEkJtSs+mJHLLyF0HYBQJjmk9kTcnODIFIIk9zikz3uL9ksneK
LkOAOQPeJxkJ0og5EY+LSzfAEmjveVso1M/JuOF3JG60W4NKRkmhrVy32NpJmkVz
uY7rGpwubHDTxducRgJZQr+tvCFM0Wtrp4czGms=
-----END CERTIFICATE-----
Data Base Updated
[root@xuexi tmp]# tree -C /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

自签定成功后,在/etc/pki/CA目录下将生成1多重文件。

内部newcerts目录下的0壹.pem即为刚才自签约的证件文件,因为它是CA本身的证书,所以依据安排文件中的”certificate=$dir/cacert.pem”项,应该将其放入/etc/pki/CA目录下,且命名叫cacert.pem,唯有如此以往才能签署任何证书请求。

[root@xuexi tmp]# tree -C /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│   └── 01.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem

中间newcerts目录下的0一.pem即为刚才自签定的申明文件,因为它是CA自个儿的证件,所以传闻安顿文件中的”certificate=$dir/cacert.pem”项,应该将其放入/etc/pki/CA目录下,且命名称为cacert.pem,唯有这么之后才能签署任何证书请求。

由来,自行建造CA就完事了,查看下数据库索引文件和体系号文件。

[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem
[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial
02

迄今,自行建造CA就形成了,查看下数据库索引文件和系列号文件。

那么,下次签订契约证书请求时,连串号将是”02″。

[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial
02

将上述自行建造CA的进度总结如下:

那么,下次签订契约证书请求时,体系号将是”02″。

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 
[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem
[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem

将上述自行建造CA的历程计算如下:

如上进度是一点1滴读取暗中同意配置文件创立的,其实过多种经营过是不曾那么严厉的,openssl
ca命令本身能够内定很多抉择覆盖配置文件中的项,但既然提供了暗中认可的配置文件及目录结构,为了方便管理,如故提议完全选用配备文件中的项。

[root@xuexi tmp]# touch /etc/pki/CA/index.txt 
[root@xuexi tmp]# echo "01" > /etc/pki/CA/serial
[root@xuexi tmp]# openssl genrsa -out /etc/pki/CA/private/cakey.pem
[root@xuexi tmp]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr
[root@xuexi tmp]# openssl ca -selfsign -in rootCA.csr
[root@xuexi tmp]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem

(2).为别人颁发证书。

如上进程是一点一滴读取默许配置文件创制的,其实过多进度是未曾那么严苛的,openssl
ca命令自己能够钦点很多选用覆盖配置文件中的项,但既然提供了私下认可的计划文件及目录结构,为了方便管理,还是提出完全采取配备文件中的项。

率先申请者创立1个证件请求文件。

(2).为客人颁发证书。

[root@xuexi tmp]# openssl req -new -key privatekey.pem -out youwant1.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.youwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.

第三申请者创制多少个证件请求文件。

里面Country Name、State or Province Name、Organization Name和Common
Name必须提供,且前三者必须和CA的subject中的对应项完全相同。那几个是由布署文件中的相称策略决定的。

[root@xuexi tmp]# openssl req -new -key privatekey.pem -out youwant1.csr
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) []:FJ
Locality Name (eg, city) [Default City]:XM
Organization Name (eg, company) [Default Company Ltd]:JM
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.youwant.com
Email Address []:.

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ]
policy          = policy_match
[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

里面Country Name、State or Province Name、Organization Name和Common
Name必须提供,且前叁者必须和CA的subject中的对应项完全相同。那些是由布置文件中的相称策略决定的。

“match”表示openssl
ca要签署的证件请求文件中的项要和CA证书中的项相称,即要相同,”supplied”表示必要求提供的项,”optional”表示可挑选,所以能够留空。

[ ca ]
default_ca      = CA_default            # The default ca section
[ CA_default ]
policy          = policy_match
[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

明天就足以将证书请求文件发送给CA,让CA援救签署。

“match”表示openssl
ca要签署的证件请求文件中的项要和CA证书中的项相配,即要相同,”supplied”表示必须要提供的项,”optional”表示可选择,所以能够留空。

[root@xuexi tmp]# openssl ca -in youwant1.csr

今昔就足以将证件请求文件发送给CA,让CA协助签署。

署名成功后,查看下/etc/pki/CA下的公文结构。

[root@xuexi tmp]# openssl ca -in youwant1.csr
[root@xuexi tmp]# tree -C /etc/pki/CA/
/etc/pki/CA/
├── cacert.pem
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── newcerts
│   ├── 01.pem
│   └── 02.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

4 directories, 10 files

签字成功后,查看下/etc/pki/CA下的文本结构。

内部”0贰.pem”就是刚刚签署成功的申明,将此证书发送给申请者即表示颁发实现。

[root@xuexi tmp]# tree -C /etc/pki/CA/
/etc/pki/CA/
├── cacert.pem
├── certs
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.attr.old
├── index.txt.old
├── newcerts
│   ├── 01.pem
│   └── 02.pem
├── private
│   └── cakey.pem
├── serial
└── serial.old

4 directories, 10 files

再看下数据库索引文件和种类号文件。

内部”0二.pem”就是刚刚签署成功的证件,将此证书发送给申请者即表示颁发达成。

[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com
V       180627110022Z           02      unknown /C=CN/ST=FJ/O=JM/CN=www.youwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial
03

再看下数据库索引文件和系列号文件。

(3).openssl ca命令用法

[root@xuexi tmp]# cat /etc/pki/CA/index.txt
V       180627100629Z           01      unknown /C=CN/ST=FJ/O=JM/OU=IT/CN=www.iwant.com
V       180627110022Z           02      unknown /C=CN/ST=FJ/O=JM/CN=www.youwant.com

[root@xuexi tmp]# cat /etc/pki/CA/serial
03

经过地点的言传身教,应该对openssl
ca命令的用法差不离通晓了,上面是其总体的用法表达,不包涵crl相关功能。

(3).openssl ca命令用法

openssl ca [-verbose] [-config filename] [-name section] [-startdate date] [-enddate date] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin arg] [-cert file]
[-selfsign] [-in file] [-out file] [-notext] [-outdir dir] [-infiles] [-ss_cert file] [-preserveDN] [-noemailDN] [-batch] [-extensions section] [-extfile section] [-subj arg] [-utf8]

经过地点的以身作则,应该对openssl
ca命令的用法大概理解了,下边是其总体的用法表明,不包蕴crl相关效用。

要留意,ca命令是用于签署证书的,所以它所急需的公文除了配备文件外便是私钥文件和证件请求文件,而签名后生成的文书是申明文件,由此使用”-in”钦定的目的是待签署文件,”-infiles”则是钦命多个待签署文件,”-keyfile”是点名私钥文件,”-out”是钦赐输出的评释文件。

openssl ca [-verbose] [-config filename] [-name section] [-startdate date] [-enddate date] [-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin arg] [-cert file]
[-selfsign] [-in file] [-out file] [-notext] [-outdir dir] [-infiles] [-ss_cert file] [-preserveDN] [-noemailDN] [-batch] [-extensions section] [-extfile section] [-subj arg] [-utf8]
【选项说明:】
-config filename :指定要使用的配置文件,指定后将忽略openssl.cnf中指定的关于ca的配置选项。
-name section    :指定使用配置文件中的那个section。指定后将忽略openssl.cnf中的default_ca段。
-in filename     :指定要被CA签署的单个证书请求文件。根CA为其他证书签署时使用。
-infiles         :该选项只能是最后一个选项,该选项所接的所有参数都被认为是要被签署的证书请求文件,即一次性签署多个请求文件时使用的选项。
-selfsign        :自签署。指定-ss_cert选项时该选项被忽略。
-ss_cert filename:将被CA自签署的单个证书文件。也就是说要重新签署证书。
-out filename    :证书的输出文件,同时也会输出到屏幕。不指定时默认输出到stdout。
-outdir dir_name :证书的输出目录。指定该选项时,将自动在此目录下生成一个文件名包含16进制serial值的".pem"证书文件。
-cert            :CA自己的证书文件。
-keyfile filename:指定签署证书请求时的私钥文件,即CA自己的私钥文件。
-key passwd_value:指定私钥的加密密码。
-passin arg      :传递解密密码
-verbose         :打印操作执行时的详细信息
-notext          :禁止以文本格式将证书输出到"-out"指定的文件中
-days arg        :证书有效期限,从创建时刻开始算startdate,有效期结束点为enddate。
-startdate       :自定义证书的开始时间,和"-enddate"一起使用可以推算出证书有效期。
-enddate         :自定义证书的结束时间。
-md alg          :指定单向加密算法
-policy arg      :该选项是配置文件中的section内容,该选项指定了证书信息中的field部分是否需要强制提供还是要强制匹配,
                 :或者可提供可不提供。详细的见配置文件说明。
-extensions section:指定当前创建的证书使用配置文件中的哪个section作为扩展属性。
-batch           :签署时使用批处理模式,即非交互模式。该模式下不会有两次询问(是否签署、是否提交)。
-subj arg        :替换证书请求中的subject,格式/type0=value0/type1=value1/type2=...

要留意,ca命令是用以签署证书的,所以它所急需的文书除了配置文件外正是私钥文件和注脚请求文件,而签名后生成的公文是注脚文件,由此使用”-in”内定的对象是待签署文件,”-infiles”则是点名多个待签署文件,”-keyfile”是钦点私钥文件,”-out”是点名输出的注脚文件。

布署文件有关ca的有些,当中被标记为必须项的象征配置文件中要么命令行中必须付出该采取及其值。

【选项说明:】
-config filename :指定要使用的配置文件,指定后将忽略openssl.cnf中指定的关于ca的配置选项。
-name section    :指定使用配置文件中的那个section。指定后将忽略openssl.cnf中的default_ca段。
-in filename     :指定要被CA签署的单个证书请求文件。根CA为其他证书签署时使用。
-infiles         :该选项只能是最后一个选项,该选项所接的所有参数都被认为是要被签署的证书请求文件,即一次性签署多个请求文件时使用的选项。
-selfsign        :自签署。指定-ss_cert选项时该选项被忽略。
-ss_cert filename:将被CA自签署的单个证书文件。也就是说要重新签署证书。
-out filename    :证书的输出文件,同时也会输出到屏幕。不指定时默认输出到stdout。
-outdir dir_name :证书的输出目录。指定该选项时,将自动在此目录下生成一个文件名包含16进制serial值的".pem"证书文件。
-cert            :CA自己的证书文件。
-keyfile filename:指定签署证书请求时的私钥文件,即CA自己的私钥文件。
-key passwd_value:指定私钥的加密密码。
-passin arg      :传递解密密码
-verbose         :打印操作执行时的详细信息
-notext          :禁止以文本格式将证书输出到"-out"指定的文件中
-days arg        :证书有效期限,从创建时刻开始算startdate,有效期结束点为enddate。
-startdate       :自定义证书的开始时间,和"-enddate"一起使用可以推算出证书有效期。
-enddate         :自定义证书的结束时间。
-md alg          :指定单向加密算法
-policy arg      :该选项是配置文件中的section内容,该选项指定了证书信息中的field部分是否需要强制提供还是要强制匹配,
                 :或者可提供可不提供。详细的见配置文件说明。
-extensions section:指定当前创建的证书使用配置文件中的哪个section作为扩展属性。
-batch           :签署时使用批处理模式,即非交互模式。该模式下不会有两次询问(是否签署、是否提交)。
-subj arg        :替换证书请求中的subject,格式/type0=value0/type1=value1/type2=...
new_certs_dir    :等同于"-outdir"选项。必须项
certificat       :等同于"-cert"选项,CA自己的证书文件。必须项
private_key      :等同于"-keyfile"选项,签署证书请求文件时的私钥文件,即CA自己的私钥文件。必须项
default_days     :等同于"-days"选项
default_startdate:等同于"-startdate"选项。
default_enddate  :等同于"-enddate"选项。
default_md       :等同于"-md"选项。必须项
database         :openssl维护的数据库文件。存放证书条目信息及状态信息。必须项
serial           :已颁发证书的序列号(16进制)文件。必须项且该文件中必须存在一个序列值
unique_subject   :如果设置为yes,database中的subject列值必须不重复。如果设置为no,允许subject重复。默认是yes,
                 :这是为了兼容老版本的Openssl,推荐设置为no。
x509_extensions  :等同于"-extensions"选项。
policy           :等同于"-policy"选项。必须项
name_opt/cert_opt:证书的展示格式,虽非必须但建议设置为ca_default,若不设置将默认使用老版本的证书格式(不建议如此)。
                 :伪命令ca无法直接设置这两个选项,而伪命令x509的"-nameopt"和"-certopt"选项可以分别设置。
copy_extensions  :决定证书请求中的扩展项如何处理的。如果设置为none或不写该选项,则扩展项被忽略并且不复制到证书中去。
                 :如果设置为copy,则证书请求中已存在而证书中不存在的扩展项将复制到证书中。
                 :如果设置为copyall,则证书请求中所有的扩展项都复制到证书中,此时若证书中已存在某扩展项,则先删除再复制。
                 :该选项的主要作用是允许证书请求为特定的扩展项如subjectAltName提供值。
                 :使用该选项前请先查看man ca中的WARNINGS部分。建议一般简单使用时设置为none或不设置。

配置文件有关ca的部分,个中被标记为必须项的表示配置文件中要么命令行中必须提交该采纳及其值。

 

new_certs_dir    :等同于"-outdir"选项。必须项
certificat       :等同于"-cert"选项,CA自己的证书文件。必须项
private_key      :等同于"-keyfile"选项,签署证书请求文件时的私钥文件,即CA自己的私钥文件。必须项
default_days     :等同于"-days"选项
default_startdate:等同于"-startdate"选项。
default_enddate  :等同于"-enddate"选项。
default_md       :等同于"-md"选项。必须项
database         :openssl维护的数据库文件。存放证书条目信息及状态信息。必须项
serial           :已颁发证书的序列号(16进制)文件。必须项且该文件中必须存在一个序列值
unique_subject   :如果设置为yes,database中的subject列值必须不重复。如果设置为no,允许subject重复。默认是yes,
                 :这是为了兼容老版本的Openssl,推荐设置为no。
x509_extensions  :等同于"-extensions"选项。
policy           :等同于"-policy"选项。必须项
name_opt/cert_opt:证书的展示格式,虽非必须但建议设置为ca_default,若不设置将默认使用老版本的证书格式(不建议如此)。
                 :伪命令ca无法直接设置这两个选项,而伪命令x509的"-nameopt"和"-certopt"选项可以分别设置。
copy_extensions  :决定证书请求中的扩展项如何处理的。如果设置为none或不写该选项,则扩展项被忽略并且不复制到证书中去。
                 :如果设置为copy,则证书请求中已存在而证书中不存在的扩展项将复制到证书中。
                 :如果设置为copyall,则证书请求中所有的扩展项都复制到证书中,此时若证书中已存在某扩展项,则先删除再复制。
                 :该选项的主要作用是允许证书请求为特定的扩展项如subjectAltName提供值。
                 :使用该选项前请先查看man ca中的WARNINGS部分。建议一般简单使用时设置为none或不设置。

归来openssl类别文章大纲:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

转发请注解出处:http://www.cnblogs.com/f-ck-need-u/p/7115871.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有