建立私有CA的方法

建立私有CA的方法

建立私有CA的工具:
    OpenCA
    Openssl

证书申请及签署步骤:
    1,生成申请请求:
    2,RA核验;
    3,CA签署;
    4,获取证书;

创建私有CA:
    CA的默认配置文件
        [root@localhost CA]# cat /etc/pki/tls/openssl.cnf 

    CA的工作目录:
        [root@localhost CA]# pwd
        /etc/pki/CA
        drwxr-xr-x. 2 root root 4096 May  9 20:32 certs
        drwxr-xr-x. 2 root root 4096 May  9 20:32 crl
        drwxr-xr-x. 2 root root 4096 May  9 20:32 newcerts
        drwx------. 2 root root 4096 May  9 20:32 private
    先准备在配置文件中的没有的文件:
    1)创建所需要的文件
        touch index.txt
        echo 01 > serial
    [root@localhost CA]# touch index.txt
    [root@localhost CA]# echo 01 > serial
    [root@localhost CA]# ls
    certs  crl  index.txt  newcerts  private  serial    
    2)CA自签证书
    [root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
..........................................................................................+++
.....+++
e is 65537 (0x10001)
[root@localhost CA]# ls private/
cakey.pem

建立私钥密钥,但是这里生成的密钥文件必须是cakey.pem

然后提取公钥文件:
    openssl -req -new -x509(要自签的加) private、cakey.epm -days 7300 -out cacert.pem
    -new:生成新证书的签署请求;
    -X509:专用于CA生成自签证书;
    -key:生成请求时用到的私钥文件;
    -days n:证书的有效期限;
    -out XXX:证书的保存路径;

root@localhost 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]:MageEdu
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:ca.magedu.com-->这里必须有DNS解析出来的地址相关
Email Address []:caadmin$magedu.com

[root@localhost CA]# ll
total 24
-rw-r--r--  1 root root 1424 Sep  5 23:39 cacert.pem
drwxr-xr-x. 2 root root 4096 May  9 20:32 certs
drwxr-xr-x. 2 root root 4096 May  9 20:32 crl
-rw-r--r--  1 root root    0 Sep  5 23:27 index.txt
drwxr-xr-x. 2 root root 4096 May  9 20:32 newcerts
drwx------. 2 root root 4096 Sep  5 23:31 private
-rw-r--r--  1 root root    3 Sep  5 23:27 serial

3)如何去发证:
    a)用到证书的主机生成证书请求;
    [root@localhost CA]# rpm -q httpd
httpd-2.2.15-54.el6.centos.x86_64
[root@localhost CA]# cd /etc/httpd/
[root@localhost httpd]# mkdir ssl
[root@localhost httpd]# ll
total 12
drwxr-xr-x. 2 root root 4096 Sep  3 02:23 conf
drwxr-xr-x. 2 root root 4096 Sep  3 02:23 conf.d
lrwxrwxrwx. 1 root root   19 Sep  3 02:23 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root   29 Sep  3 02:23 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root   19 Sep  3 02:23 run -> ../../var/run/httpd
drwxr-xr-x  2 root root 4096 Sep 16 23:32 ssl
[root@localhost httpd]# (umask 077; openssl genrsa -out httpd.key 2048)-->生成私钥文件
[root@localhost httpd]# openssl req -new -key httpd.key -days 365 -out 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]:MageEdu
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server's hostname) []:www.magedu.com
Email Address []:webadmin@magedu.com

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

将生成的请求发送给CA:
[root@localhost httpd]# scp httpd.csr root@172.16.0.124:/tmp/
[root@localhost CA]# ls /tmp/
httpd.csr       orbit-gdm   pulse-bMNLizBbCagk  virtual-root.Bhm2B0  yum.log
keyring-JyWsRM  orbit-root  pulse-egdmbk3LeK05  virtual-root.gGyvcV

签发证书:
    [root@localhost CA]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.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: Sep  5 15:57:22 2016 GMT
        Not After : Sep  5 15:57:22 2017 GMT
    Subject:
        countryName               = CN
        stateOrProvinceName       = Beijing
        organizationName          = MageEdu
        organizationalUnitName    = Ops
        commonName                = www.magedu.com
        emailAddress              = webadmin@magedu.com
    X509v3 extensions:
        X509v3 Basic Constraints: 
            CA:FALSE
        Netscape Comment: 
            OpenSSL Generated Certificate
        X509v3 Subject Key Identifier: 
            BE:04:D4:72:AD:83:DF:1A:CE:AE:ED:0D:0E:C1:32:9B:C2:AD:F5:7E
        X509v3 Authority Key Identifier: 
            keyid:D7:32:EF:C1:93:55:AE:EF:21:38:D3:3F:90:FB:60:DC:77:11:43:74

Certificate is to be certified until Sep  5 15:57:22 2017 GMT (365 days)

签署信息:
[root@localhost CA]# cat index.txt
V   170905155722Z       01  unknown /C=CN/ST=Beijing/O=MageEdu/OU=Ops/CN=www.magedu.com/emailAddress=webadmin@magedu.com

需要将生成的证书放到证书存取库中:
目录为:CA下的certs目录下:
将newcerts下的文件cp一份到certs中!

将生成的证书传输给客户端:
    [root@localhost CA]# scp /tmp/httpd.crt 172.16.0.2:/etc/httpd/ssl/
The authenticity of host '172.16.0.2 (172.16.0.2)' can't be established.
RSA key fingerprint is 01:03:19:c3:af:54:f4:37:f1:57:f5:7c:09:88:1c:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.0.2' (RSA) to the list of known hosts.
root@172.16.0.2's password: 
httpd.crt                                                   100% 4623     4.5KB/s   00:00    

注意:证书的后缀是crt
查看证书中的信息:
[root@localhost ssl]# openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -text

4)吊销证书:
    a)客户端获取要吊销的证书serial
    openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -serial

    b)先根据客户提交的serial与subject信息对比检验是否与index.txt 文件中的信息是否一致:
        吊销证书:
        openssl -ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
    c)生成吊销证书的编号:
        echo 01> /etc/pki/CA/crlnumber
    d)更新证书的吊销列表
        openssl ca -gencrl -out thisca.crl
    查看crl文件:
        openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text

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

(0)
wostopwostop
上一篇 2016-09-19 13:47
下一篇 2016-09-19 13:47

相关推荐

  • 马哥教育网络班22期+第2周课程练习

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。      文件管理命令有:mkdir  rm  tree  ls  等等  1、mkdir [options] /path/to/somewhere      &…

    Linux干货 2016-08-22
  • 浅谈HTTP协议以及httpd的十八般武艺

      初识HTTP协议                HTTP(hyper text transfer protocal)作为互联网应用最广泛的协议,任何一个运维人员都无法回避它,HTTP的目的就是提供一种发布和…

    Linux干货 2016-02-14
  • 多方面修复linux系统

    在这篇文章,您将看到以下方面的修复方法: ●内核文件和虚拟 ●grub.conf ●grub目录 ●boot分区 ●fstab文件 ●root密码破解   首先,要想很愉快的修复linux启动的各种问题,就必然要把linux的启动流程搞清楚。 1. 加载 BIOS 的硬件信息和进行自我测试,并依据设定取得第一个可开机的装置; 2. 读取并执行第一个…

    Linux干货 2016-09-13
  • 三大家族轻松管理CentOS 7网络属性配置

    一、简单介绍        在CentOS 7中对网络管理还是有不少变化的,例如管理服务的命令变为systemctl,许多命令可以更改后直接生效,还有许多独有的工具,本文以CentOS 6与CentOS 7对比进行讲解,下面现总体介绍一下网络属性配置工具。    &nb…

    Linux干货 2016-04-25
  • web服务及常见配置

    一次HTTP请求过程1、建立连接:接收或拒绝连接请求2、接收请求:接收客户端请求报文中对某资源的一次请求的过程Web访问响应模型(Web I/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和…

    Linux干货 2017-10-09
  • 第六周作业

    1、简述osi七层模型和TCP/IP五层模型 应用层 运行着应用程序的协议http、ftp、tftp等 表示层 将应用层所编辑的数据进行加密或解密,没有协议 会话层 决定一次数据传输发起和接收会话请求,没有协议 传输层 根据选着的协议类型,决定是否将数据分割或重组,协议:tcp、udp等 网络层 编辑逻辑地址信息(原站点、目的站点)和路由选着(ARP)协议:…

    2018-02-06