在CentOS 7上实现私有CA及申请和吊销证书

– 创建私有CA

openssl的配置文件:/etc/pki/tls/openssl.cnf

42 dir     = /etc/pki/CA       # Where everything is kept
 43 certs       = $dir/certs        # Where the issued certs are kept
 44 crl_dir     = $dir/crl      # Where the issued crl are kept
 45 database    = $dir/index.txt    # database index file.
 46 #unique_subject = no            # Set to 'no' to allow creation of
 47                     # several ctificates with same subject.
 48 new_certs_dir   = $dir/newcerts     # default place for new certs.
 49 
 50 certificate = $dir/cacert.pem   # The CA certificate
 51 serial      = $dir/serial       # The current serial number
 52 crlnumber   = $dir/crlnumber    # the current crl number
 53                     # must be commented out to leave a V1 CRL
 54 crl     = $dir/crl.pem      # The current CRL
 55 private_key = $dir/private/cakey.pem# The private key
 56 RANDFILE    = $dir/private/.rand    # private random number file
 57 
 58 x509_extensions = usr_cert      # The extentions to add to the cert

1、创建所需文件

[root@Shining /etc/pki/CA]# openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem
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) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:pirate.com
Email Address []:pirate@163.com

-new: 生成新证书签署请求 
-x509: 专用于CA生成自签证书 
-key: 生成请求时用到的私钥文件 
-days n:证书的有效期限 
-out /PATH/TO/SOMECERTFILE: 证书的保存路径

3、颁发证书

(a)在需要使用证书的主机生成证书请求

[root@Shining /etc/pki/CA]# (umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key) 
Generating RSA private key, 1024 bit long modulus
....++++++
................++++++
e is 65537 (0x10001)

生成证书申请文件

[root@Shining /etc/pki/CA]# openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.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) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:pirate.com
Email Address []:pirate@163.com

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

(b) 将证书请求文件传输给CA 
(c) CA签署证书,并将证书颁发给请求者:

[root@Shining /etc/pki/CA]# openssl ca -in /etc/httpd/ssl/httpd.csr -out certs/http.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Dec  1 06:34:52 2016 GMT
            Not After : Dec  1 06:34:52 2017 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Beijing
            organizationName          = magedu
            organizationalUnitName    = IT
            commonName                = pirate.com
            emailAddress              = pirate@163.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                7E:6E:F0:97:27:94:8D:6B:27:55:6A:2D:4E:1D:54:D8:C3:EA:9B:FA
            X509v3 Authority Key Identifier: 
                keyid:3E:DF:08:62:77:CF:10:3E:5D:A4:E6:61:85:8A:7A:86:DE:AE:F3:2C

Certificate is to be certified until Dec  1 06:34:52 2017 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
Data Base Updated

注意:默认国家,省,公司名称必须和CA一致 
(d) 查看证书中的信息:

[root@Shining /etc/pki/CA]# openssl x509 -in cacert.pem -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 14592393701163322702 (0xca8298c1e47ccd4e)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, ST=Beijing, L=Beijing, O=magedu, OU=IT, CN=pirate.com/emailAddress=pirate@163.com
        Validity
            Not Before: Dec  1 06:25:39 2016 GMT
            Not After : Nov 26 06:25:39 2036 GMT
        Subject: C=CN, ST=Beijing, L=Beijing, O=magedu, OU=IT, CN=pirate.com/emailAddress=pirate@163.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a8:7a:aa:73:d1:67:5d:5d:1f:7b:9b:4b:d6:91:
                    bf:e2:2a:38:0e:cc:91:8d:a7:6c:9f:4d:30:8f:4a:
                    d5:68:98:ac:c2:0e:28:d5:a0:61:81:90:0b:b2:69:
                    2e:bb:9d:8a:79:3e:34:e3:24:6c:bf:4b:95:36:8e:
                    c9:69:b6:9c:65:d7:fa:4f:78:b9:01:72:93:ec:56:
                    3c:3d:50:34:a0:43:3f:5d:04:aa:e2:a7:4a:d3:04:
                    fc:32:1a:e5:a8:91:75:84:06:4d:72:61:c5:ef:bb:
                    23:68:ba:5a:d6:4d:af:a4:ae:b0:81:b9:b4:1d:68:
                    ed:2d:f6:36:5c:40:89:92:6d:05:7a:34:70:77:0d:
                    4c:26:c0:a1:14:d6:41:96:e9:59:dd:e1:31:07:7a:
                    d5:36:c2:2e:26:0c:e0:9b:39:49:18:dc:85:30:17:
                    7c:b6:c3:6d:ba:90:0a:11:e9:04:c0:1f:2e:4f:fd:
                    85:31:3b:67:35:a0:e1:d3:f8:c2:15:fe:96:95:1d:
                    a1:9a:9a:41:cf:26:cc:65:3f:dd:6b:98:86:38:76:
                    c1:3e:54:e6:09:57:b4:c0:36:2e:f5:1a:70:8e:0e:
                    81:93:42:2d:0a:1a:4c:96:f9:90:aa:10:af:e3:06:
                    b0:27:57:ba:4a:27:5e:98:14:7d:28:fd:c5:89:4a:
                    75:9b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                3E:DF:08:62:77:CF:10:3E:5D:A4:E6:61:85:8A:7A:86:DE:AE:F3:2C
            X509v3 Authority Key Identifier: 
                keyid:3E:DF:08:62:77:CF:10:3E:5D:A4:E6:61:85:8A:7A:86:DE:AE:F3:2C

        X509v3 Basic Constraints: 
            CA:TRUE
Signature Algorithm: sha256WithRSAEncryption
     6b:b2:40:62:2b:a9:0e:f4:fc:46:ed:88:69:8e:8b:72:05:c4:
     ff:db:66:87:16:7b:7b:6f:98:3c:fa:94:87:93:07:d8:8d:9e:
     50:76:21:ae:11:b3:59:43:c5:ac:82:dd:75:aa:37:33:88:43:
     bc:e6:de:67:fb:0a:e9:ce:8f:ef:70:93:19:32:5b:68:10:55:
     cf:7c:87:2a:91:d4:b6:d0:f2:39:02:84:29:7d:4b:12:6c:c1:
     9d:6d:fd:d0:01:07:ce:f1:34:6c:64:85:98:c9:56:3f:7d:92:
     e4:65:e3:d9:83:32:40:a8:f9:48:a4:6a:68:a4:09:82:8f:ec:
     86:96:25:1f:64:4c:6e:63:98:0a:fb:95:44:58:71:81:2d:84:
     41:a3:44:31:b0:47:26:79:fb:3a:9d:b5:b3:6b:c6:a9:d2:36:
     e6:27:6f:de:ef:1f:6c:df:2a:38:2f:e0:85:c2:4f:62:23:c3:
     c0:dd:a8:df:e3:0b:94:d1:87:9f:ce:d2:13:6c:82:9e:28:35:
     52:fc:50:9c:23:92:ae:4a:83:a0:76:d1:f3:59:22:c2:02:54:
     77:96:d8:2c:06:a5:71:25:98:bb:10:84:db:87:06:e0:d5:56:
     44:0d:8d:bf:a1:cb:74:33:f5:6a:b8:fb:7b:d7:af:26:c0:bc:
     44:e8:2b:18

(4)吊销证书

(a) 在客户端获取要吊销的证书的serial

[root@Shining /etc/pki/CA]# openssl x509 -in cacert.pem -noout -serial -subject
serial=CA8298C1E47CCD4E
subject= /C=CN/ST=Beijing/L=Beijing/O=magedu/OU=IT/CN=pirate.com/emailAddress=pirate@163.com

(b) 在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致 
吊销证书:

[root@Shining /etc/pki/CA]# openssl ca -revoke newcerts/01.pem 
Using configuration from /etc/pki/tls/openssl.cnf
Revoking Certificate 01.
Data Base Updated

(c) 生成吊销证书的编号(第一次吊销一个证书时才需要执行)

[root@Shining /etc/pki/CA]# echo 01 > crlnumber

(d) 更新证书吊销列表

[root@Shining /etc/pki/CA]# openssl ca -gencrl -out crl/crl.pem
Using configuration from /etc/pki/tls/openssl.cnf

查看crl文件:

[root@Shining /etc/pki/CA]# openssl crl -in crl/crl.pem -noout -text
Certificate Revocation List (CRL):
        Version 2 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: /C=CN/ST=Beijing/L=Beijing/O=magedu/OU=IT/CN=pirate.com/emailAddress=pirate@163.com
        Last Update: Dec  1 08:02:47 2016 GMT
        Next Update: Dec 31 08:02:47 2016 GMT
        CRL extensions:
            X509v3 CRL Number: 
                1
Revoked Certificates:
    Serial Number: 01
        Revocation Date: Dec  1 07:50:35 2016 GMT
    Signature Algorithm: sha256WithRSAEncryption
         5a:02:42:b5:08:3e:e6:16:1a:9f:40:bb:dd:9e:7d:15:8d:d9:
         9f:06:e2:c7:9d:1b:46:8f:f0:7e:b0:25:82:fc:b1:ca:b0:cb:
         c1:4b:3d:a9:b7:2d:06:ba:c1:81:ca:e0:3c:c5:67:f9:0a:cd:
         30:88:ff:84:38:ab:64:19:3d:15:91:69:44:29:83:63:e3:e9:
         e5:b4:1c:a5:35:e1:40:b1:2d:ef:a6:91:c6:56:12:d2:87:4f:
         47:28:5b:0f:b4:8f:fa:e1:9a:04:25:26:1b:8c:d5:df:72:71:
         d8:30:de:38:44:53:a7:f3:57:0a:22:63:9e:7d:79:86:06:b4:
         65:e7:f5:54:b4:de:41:90:5a:f4:41:3c:50:ee:6e:f3:bf:fa:
         0b:c5:aa:51:ae:f9:92:76:d9:68:75:5b:d9:1c:2b:e6:47:1c:
         7b:93:06:41:0c:87:2b:31:4a:d1:0f:c1:1b:27:9a:07:33:0d:
         a9:32:c3:c8:b6:99:4e:cc:b7:08:7d:61:04:ae:71:fd:fa:63:
         20:6a:af:9c:7f:84:07:31:67:f3:3a:be:34:01:16:30:68:a0:
         f2:00:56:1e:98:17:21:fb:7e:b4:5f:5b:ba:ce:eb:bc:bd:ee:
         8b:d4:2f:72:30:a6:d5:eb:f3:0c:bb:f5:c5:f0:89:5e:1a:1e:
         fa:33:af:c2

+

原创文章,作者:wangshuai,如若转载,请注明出处:http://www.178linux.com/61837

(0)
wangshuaiwangshuai
上一篇 2016-12-01
下一篇 2016-12-01

相关推荐

  • 通用二进制安装MySQL(MariaDB)

    一、前言     MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,并且之前是完全开源,所以大受欢迎。但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少。所…

    Linux干货 2015-10-15
  • 计算机的组成及其功能。

    一、计算机的组成及其功能。 计算机,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 1、运算器(Arithmetical and Logical Unit):计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与…

    Linux干货 2016-10-30
  • 如何在Linux上创建文件系统

        谈到如何创建文件系统,在这里就不得不提一下什么是文件系统,在百度上搜索得到的定义是这样的:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统,简单的看这个概念可能感觉还是有点茫茫然,其实简单的说,就是定义磁盘存取数据的一种逻辑组织,我们都知道磁盘是一种存储数据的硬件,首先但这个硬件的工作当…

    Linux干货 2016-01-18
  • HA高可用集群学习笔记

    前言   什么是HA?HA做什么用的?   HA(High Available)是高可用集群,是保证业务不中断性的有效解决方案;通常HA集群部署在多个节点,正在提供服务的节点成为活动节点,没有提供服务的是非活动节点;当活动节点发生故障,非活动节点会转为活动节点,向外提供服务,以保证业务的连续性;这就是HA。 一、HA(High Avail…

    Linux干货 2015-06-30
  • linux命令 kill命令详则

    kill命令 kill用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息(默认)为SIGTERM(15),可经指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。 语法 kill(选项)(参数) 选项 -a:当处理当前进程时,不限制命令名和进程号的对应关系; &…

    2017-08-21
  • IP地址之IPv4

    一、概述   IP地址有IPv4和IPv6两个版本,目前我们通常所说的IP地址是指IPv4。   IP地址由32位的二进制数组合而成,为了方便人类记忆,将二进制转换成4个十进制的数值。   在这32位数据中分为网络号与主机号两个部分。 二、IP的分级   IP网段分为五个等级,其定义如下:   A类:规定前面…

    Linux干货 2016-02-14