點選打開連結
一、簡介
OpenSSL是一款開源的加密工具,在Linux環境下,我們能夠利用它來搭建一個CA來實作證書的發放,可以用于企業内部使用的加密工具,下面是用OpenSSL這個強大的工具,在Linux下建構一個CA,來實作證書管理。
二、搭建
1、我們首先看一下CA的目錄結構
[[email protected] ~]# tree /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── newcerts
└── private
下面我會講解兩種方法,一種是使用指令openssl,還有一直是使用Makefile檔案生成(用紫色标示)
Makefile在目錄/etc/pki/tls/certs下,在開始之前,為了不頻繁的輸入申請認證的一些資訊,我們對openssl.cnf檔案下面進行一些修改
# vim /etc/pki/tls/openssl.cnf
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauYzM2UlTshma25UePFUQtRlZQlma3VWQYFDTvl2S39CXxU0LcBzNvwVMw00LcJDMzZWe39CXt92Yu8GdjFTNuMzcvw1LcpDc0RHaiojIsJye.jpg)
2、切換到/etc/pki/CA/目錄,使用openssl指令給自己生成一個私鑰
[[email protected] ~]# cd /etc/pki/CA/
[[email protected] CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
.......................+++
.........................................................+++
e is 65537 (0x10001)
(以上還可以使用以下操作,切換到/etc/pki/tls/certs目錄下面,運作# make cakey.pem)
.pem的證書私鑰和公鑰都在同一個檔案,如果想檢視私鑰對應的公鑰,可以使用如下指令
# openssl rsa -in private/cakey.pem -pubout
3、CA需要一個自簽證書,是以我們給它使用openssl指令生成一個自簽證書
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
以上資訊請根據自己的實際情況進行填寫,接下來我們可以檢視生成的證書
# cat cacert.pem
但是從中我們看不到什麼資訊,下面我們可以通過openssl檢視
# openssl x509 -text -in cacert.pem
4、建立CA的相關目錄和檔案,指定序列号起始數字,它們在CA所在目錄建立
# touch index.txt serial crlnumber
# echo 01 > serial
到目前我們自建的CA頒發機構就已經搭建完成了,下一步我們為其他申請進行證書簽發操作
三、證書的申請簽署
1、我們以用戶端身份進行證書申請,首先我們應該先建立自己的私鑰
# (umask 077; openssl genrsa -out client.key 1024)
2、用戶端如果想申請獲得證書的話,需要建立一個申請證書,傳遞給CA
# openssl req -new -key client.key -out client.csr
csr: Certificate Signing Request(證書簽發申請)
最後可以輸入密碼來進行證書申請的加密,我這裡不進行加密了,除Common Name、Email Address以外,以上所有值必須和CA憑證所填資訊保持一緻,否則無法得到驗證。
(以上還可以使用以下操作,切換到/etc/pki/tls/certs目錄下面,運作# make client.csr)
3、在CA端給用戶端頒發證書,使用openssl指令
# openssl ca -in client.csr -out client.crt -days 365
證書簽發成功,以上就是簽發的資訊
四、吊銷證書
# openssl ca -revoke client.crt
# cd /etc/pki/CA/
# cat index.txt
五、附錄
openssl中有如下字尾名的檔案
.key格式:私有的密鑰
.crt格式:證書檔案,certificate的縮寫
.csr格式:證書簽名請求(證書請求檔案),含有公鑰資訊,certificate signing request的縮寫
.crl格式:證書吊銷清單,Certificate Revocation List的縮寫
.pem格式:用于導出,導入證書時候的證書的格式,有證書開頭,結尾的格式
常用證書協定
x509v3: IETF的證書标準
x.500:目錄的标準
SCEP: 簡單證書申請協定,用http來進行申請,資料有PKCS#7封裝,資料其實格式也是PKCS#10的
PKCS#7: 是封裝資料的标準,可以放置證書和一些請求資訊
PKCS#10: 用于離線證書申請的證書申請的資料格式,注意資料包是使用PKCS#7封裝這個資料
PKCS#12: 用于一個單一檔案中交換公共和私有對象,就是公鑰,私鑰和證書,這些資訊進行打包,加密放在存儲目錄中,CISCO放在NVRAM中,使用者可以導出,以防證書伺服器挂掉可以進行相應恢複。思科是.p12,微軟是.pfx
一、簡介
OpenSSL是一款開源的加密工具,在Linux環境下,我們能夠利用它來搭建一個CA來實作證書的發放,可以用于企業内部使用的加密工具,下面是用OpenSSL這個強大的工具,在Linux下建構一個CA,來實作證書管理。
二、搭建
1、我們首先看一下CA的目錄結構
[[email protected] ~]# tree /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── newcerts
└── private
下面我會講解兩種方法,一種是使用指令openssl,還有一直是使用Makefile檔案生成(用紫色标示)
Makefile在目錄/etc/pki/tls/certs下,在開始之前,為了不頻繁的輸入申請認證的一些資訊,我們對openssl.cnf檔案下面進行一些修改
# vim /etc/pki/tls/openssl.cnf
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauYzM2UlTshma25UePFUQtRlZQlma3VWQYFDTvl2S39CXxU0LcBzNvwVMw00LcJDMzZWe39CXt92Yu8GdjFTNuMzcvw1LcpDc0RHaiojIsJye.jpg)
2、切換到/etc/pki/CA/目錄,使用openssl指令給自己生成一個私鑰
[[email protected] ~]# cd /etc/pki/CA/
[[email protected] CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
.......................+++
.........................................................+++
e is 65537 (0x10001)
(以上還可以使用以下操作,切換到/etc/pki/tls/certs目錄下面,運作# make cakey.pem)
.pem的證書私鑰和公鑰都在同一個檔案,如果想檢視私鑰對應的公鑰,可以使用如下指令
# openssl rsa -in private/cakey.pem -pubout
3、CA需要一個自簽證書,是以我們給它使用openssl指令生成一個自簽證書
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
以上資訊請根據自己的實際情況進行填寫,接下來我們可以檢視生成的證書
# cat cacert.pem
但是從中我們看不到什麼資訊,下面我們可以通過openssl檢視
# openssl x509 -text -in cacert.pem
4、建立CA的相關目錄和檔案,指定序列号起始數字,它們在CA所在目錄建立
# touch index.txt serial crlnumber
# echo 01 > serial
到目前我們自建的CA頒發機構就已經搭建完成了,下一步我們為其他申請進行證書簽發操作
三、證書的申請簽署
1、我們以用戶端身份進行證書申請,首先我們應該先建立自己的私鑰
# (umask 077; openssl genrsa -out client.key 1024)
2、用戶端如果想申請獲得證書的話,需要建立一個申請證書,傳遞給CA
# openssl req -new -key client.key -out client.csr
csr: Certificate Signing Request(證書簽發申請)
最後可以輸入密碼來進行證書申請的加密,我這裡不進行加密了,除Common Name、Email Address以外,以上所有值必須和CA憑證所填資訊保持一緻,否則無法得到驗證。
(以上還可以使用以下操作,切換到/etc/pki/tls/certs目錄下面,運作# make client.csr)
3、在CA端給用戶端頒發證書,使用openssl指令
# openssl ca -in client.csr -out client.crt -days 365
證書簽發成功,以上就是簽發的資訊
四、吊銷證書
# openssl ca -revoke client.crt
# cd /etc/pki/CA/
# cat index.txt
五、附錄
openssl中有如下字尾名的檔案
.key格式:私有的密鑰
.crt格式:證書檔案,certificate的縮寫
.csr格式:證書簽名請求(證書請求檔案),含有公鑰資訊,certificate signing request的縮寫
.crl格式:證書吊銷清單,Certificate Revocation List的縮寫
.pem格式:用于導出,導入證書時候的證書的格式,有證書開頭,結尾的格式
常用證書協定
x509v3: IETF的證書标準
x.500:目錄的标準
SCEP: 簡單證書申請協定,用http來進行申請,資料有PKCS#7封裝,資料其實格式也是PKCS#10的
PKCS#7: 是封裝資料的标準,可以放置證書和一些請求資訊
PKCS#10: 用于離線證書申請的證書申請的資料格式,注意資料包是使用PKCS#7封裝這個資料
PKCS#12: 用于一個單一檔案中交換公共和私有對象,就是公鑰,私鑰和證書,這些資訊進行打包,加密放在存儲目錄中,CISCO放在NVRAM中,使用者可以導出,以防證書伺服器挂掉可以進行相應恢複。思科是.p12,微軟是.pfx