建立私有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.www58058.com/47658

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

相關推薦

  • 少走冤枉路!帶你走過SNMP的那些坑

    SNMP(Simple Network Management Protocol)即簡單網絡管理協議,是在網絡與系統監控領域中,最常使用的一種數據采集技術。盡管這個協議非常簡單,但在大規模IT環境監測中,還是經常會碰到各種坑,因此優云開源了一套友好的SNMPAPI,并通過本文簡單介紹這套API中的一些特點,希望幫助各位運維同仁提前規避一些問題。 特點[0].&…

    2016-06-22
  • 虛擬化網絡之OpenvSwitch(一)

    一、OpenvSwitch介紹  OpenvSwitch簡稱OVS,正如其官網(http://openvswitch.org/)所述,OVS是一個高質量、多層的虛擬交換軟件,即虛擬交換機。它的目的是通過編程擴展支持大規模網絡自動化,同時還支持標準的管理接口和協議(例如:NetFlow,sFlow,IPFIX,RSPAN, CLI, LAC…

    Linux干貨 2016-03-27
  • linux的文件類型

    linux的文件類型 linux其中的一個哲學思想就是一切皆文件,今天我們就來學習一下linux系統中的文件類型。linux不同于windows,有多種多類的文件類型,文件類型的判斷也不是以文件的后綴為標準的。linux中一共有七種文件類型,分別是:普通文件、目錄、字符設備文件、塊設備文件、套接字文件、命名管道文件和符號鏈接文件。那么接下來我們就分別看看每種…

    Linux干貨 2016-10-27
  • 系統基礎之文件管理工具

    系統基礎之文件管理工具   linux的重要哲學思想之一,一切皆文件.那作為系統管理員,就要求對文件的操作管理特別熟悉.那么下面介紹的一個工具可以幫助到大家,更有效,快捷的完成對文件的處理.下面讓我們來認識以下的工具. 文本工具: 文件內容:   cat: 復制標準輸入到標準輸出     選項:   &nbs…

    Linux干貨 2016-08-07
  • 入門——計算機基礎簡介

    一、計算機系統 計算機系統:由硬件(Hardware)系統和軟件(Software)系統倆大部分組成 二、計算機硬件 計算機(computer):是一種能接收和存儲信息,并按照存儲在其內部的程序對海量數據進行自動、高速的處理,然后把處理結果輸出的現代化電子設備。 計算機硬件組成部分 馮.諾依曼體系結構: 1946年數學家馮.諾依曼提出運算器、控制器、存儲器、…

    2018-03-27
  • httpd配置

    1、Centos7系統下實現httpd-2.2的安裝,并分別實現prefork、worker、event等幾種工作方式

    2、簡述request報文請求方法和狀態響應碼

    3、詳細描述httpd虛擬主機、站點訪問控制、基于用戶的訪問控制、持久鏈接等應用配置實例

    Linux干貨 2018-02-05
欧美性久久久久