構建私有CA

構建私有CA

我們采用openssl這個軟件來實現

所有首先我們來看下該軟件的配置文件

實現環境 centos 7.2

[root@redhat7 ~]# rpm -qc openssl  //可以看到該命令沒有任何輸出,我們可以思考該軟件包還存在其他的支包
[root@redhat7 ~]# rpm -qa | grep "openssl"  //果然我們可以看到存在 libs 支包
openssl-libs-1.0.1e-42.el7.9.x86_64
openssl-1.0.1e-42.el7.9.x86_64
[root@redhat7 ~]# rpm -qc openssl-libs
/etc/pki/tls/openssl.cnf   //終于找到配置文件了

構建私有CA

查看該配置文件

[root@redhat7 ~]# cat /etc/pki/tls/openssl.cnf

//我們主要關注 [ ca ] 段落

構建私有CA

(1)自建CA;需要私鑰 //私鑰必須在特定的目錄下,且必須命名為cakey.pem 配置文件定義的

[root@redhat7 ~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
(在子shell中執行該命令 umask 077不影響當前shell的umask)
Generating RSA private key, 2048 bit long modulus
....................+++
..................+++
e is 65537 (0x10001)
[root@redhat7 ~]# ll /etc/pki/CA/private/cakey.pem  //生成的私鑰文件
-rw-------. 1 root root 1675 Sep 11 16:57 /etc/pki/CA/private/cakey.pem

(2)生成自簽證書 //特定目錄下的特定文件名 配置文件已經定義的 [root@redhat7 ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 //輸出省略

構建私有CA

[root@redhat7 ~]# ll /etc/pki/CA/cacert.pem  //我們的CA證書
-rw-r--r--. 1 root root 1302 Sep 11 17:08 /etc/pki/CA/cacert.pem

(3)為CA提供所需要的目錄及文件 //存在則可以忽略

[root@redhat7 ~]# mkdir /etc/pki/CA/{certs,crl,newcerts}
[root@redhat7 ~]# touch /etc/pki/CA/{serial,index.txt}
[root@redhat7 ~]# echo 01 > /etc/pki/CA/serial
[root@redhat7 ~]# tree /etc/pki/CA
/etc/pki/CA
├── cacert.pem
├── certs
├── crl
├── index.txt
├── newcerts
├── private
│   └── cakey.pem
└── serial
4 directories, 4 files

構建私有CA

至此:我們的CA服務器已經配置完成

假設某服務器要用到證書進行安全通信,需要向CA請求簽署證書 (此時我們換臺centos 6.8 的主機)

我們以httpd服務為例

確保安裝有httpd服務

[root@centos6 ~]# mkdir /etc/httpd/ssl

(1)生成私鑰

[root@centos6 ~]# (umask 077 ; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
...........................................................................+++
.............................................................+++
e is 65537 (0x10001)
[root@centos6 ~]# ll /etc/httpd/ssl/httpd.key 
-rw-------. 1 root root 1679 Sep  7 02:55 /etc/httpd/ssl/httpd.key

(2)生成證書簽署請求

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

構建私有CA

此處要和圖三信息一樣 否則可能會簽署失敗 (由于是自建的私有CA)

(3)將請求通過可靠方式發送給CA主機

這里我們通過SCP命令來實現

[root@centos6 ~]# scp /etc/httpd/ssl/httpd.csr  root@10.1.0.111:/tmp //將本地的httpd.csr文件復制一份到10.1.0.111主機的/tmp目錄下

這里我們切換到CA服務器 即 centos 7 上

在CA主機上簽署證書

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


httpd.crt 即為 centos6 上的 httpd 的證書

構建私有CA 查看證書中的信息:

[root@redhat7 ~]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
serial=01
subject= /C=CN/ST=Beijing/O=Sxj/OU=Si/CN=asher.com

同時數據塊中也有相應的記錄

[root@redhat7 ~]# cat /etc/pki/CA/index.txt
V   170911110034Z       01  unknown /C=CN/ST=Beijing/O=Sxj/OU=Si/CN=asher.com

原創文章,作者:sixijie,如若轉載,請注明出處:http://www.www58058.com/49646

(0)
sixijiesixijie
上一篇 2016-09-28 15:20
下一篇 2016-09-28 21:00

相關推薦

  • 自定義命令別名及引用結果

    自定義命令別名及引用結果 alias alias命令用來設置指令的別名。我們可以使用該命令可以將一些較長的命令進行簡化。 語法 alias(選項)(參數) 選項 -p:打印已經設置的命令別名。 參數 命令別名設置:定義命令別名,格式為“命令別名=‘實際命令’” 實例 顯示已設置的別名 [root@localhost ~]# alias alias cp=’c…

    Linux干貨 2018-03-11
  • vim的使用說明

    vim的使用說明 vim是一款功能豐富而強大的文本編輯器,vim是從 vi 發展出來的一個文本編輯器。其代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛的使用。 vim的使用非常方便,使用方法為:vim [options] [file ..] 1、vim可以對指定文件進行編輯,也可以直接啟動vim編輯器進行編輯,對于打開指定文件編輯時可以加…

    Linux干貨 2016-08-12
  • python知識點

    #ipython的使用## 幫助功能?:Ipython的概述和簡介help(name):查詢指定名稱的幫助obj?:列出obj對象的詳細信息obj??:列出更加詳細信息 ## 特殊變量_ :表示前一次的輸出__:倒數第二次輸出___:倒數第三次輸出_dh:目錄歷史_oh:輸出歷史 ## shell命令!command 執行shell命令!ls -l!touc…

    Linux干貨 2017-10-03
  • mysqld_multi 多實例部署

    序言:多實例?Why?   隨著硬件層面的發展,linux系統多核已經是普通趨勢,而mysql是單進程多線程,所以先天上對多進程的利用不是很高,雖然5.6版本已經在這方面改進很多,但是也沒有達到100%,所以為了充分的利用系統資源,mysql有自己的補充,那就是可以部署多實例,一個實例一個端口。     1,準備好mysql環境…

    2017-11-16
  • 關于 文本處理工具、正則表達式、grep 的簡單舉例

                              文本處理工具 抽取文本的工具 文件內容:less和cat 文件截?。篽ead和tail 按列抽?。篶ut 按關鍵字抽?。篻rep 文件查看命令:cat,tac,rev cat […

    系統運維 2016-08-08
  • 阿里云修改hostname主機名的一點小技巧

    CentOS 7以后修改主機名一般使用: hostnamectl set-hostname newhostname 如果仍然無效,使用vim打開/etc/cloud/cloud.cfg,將 preserve_hostname=fale 改為 preserve_hostname=true 即可。 以上在阿里云ECS上親測有效,使用了網上查閱…

    Linux干貨 2017-01-09
欧美性久久久久