安全與加密、申請CA證書

本章內容

v  1、安全機制  2、對稱加密  3、不對稱加密 4、散列算法  5PKI CA

v 在互聯網數據傳輸的過程的,數據的安全私密性是及其重要的,所以就有數據的加密和解密的過程。

數據加密,是一門歷史悠久的技術,指通過加密算法和加密密鑰將明文轉變為密文,而解密則是通過解密算法和解密密鑰將密文恢復為明文。它的核心是密碼學。

數據加密目前仍是計算機系統對信息進行保護的一種最可靠的辦法。它利用密碼技術對信息進行加密,實現信息隱蔽,從而起到保護信息的安全的作用。

一、為什么要加密

1.1 不加密流量的易受攻擊性

密碼/數據嗅探

數據操作

驗證操作

相當于郵寄明信片

1.2 不安全的傳統協議

telnetFTP、POP3等等;不安全密碼

http、smtp、NFS等等;不安全信息

Ldap、NIS、rsh等等;不安全驗證

1.3 示例:利用telnet協議偽造郵件

vim /etc/postfix/main.cf 修改郵件的配置文件

/interface inet_interfaces = localhost 變為all 把接件人設為所有人

systemctl restart postfix

冒充別人給指定的人發郵件centos7 lyx;telnet

 

發送方:紅色的為操作步驟

[lv@centos7 ~]$ telnet 127.0.0.1 25

Trying 127.0.0.1…

Connected to 127.0.0.1.

Escape character is '^]'.

220 centos7.localdomain ESMTP Postfix

helo m.com

250 centos7.localdomain

mail from:Boss@work.com

250 2.1.0 Ok

rcpt to:lyx

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

subject:work

Come to the office   

.

250 2.0.0 Ok: queued as 722632668DD

quit

221 2.0.0 Bye

Connection closed by foreign host.

接收方

[lyx@centos7 ~]$ mail

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/spool/mail/lisi": 1 message 1 new

>N  1 Boss@work.com         Mon Nov 21 21:10  14/447   "work"

& 1

Message  1:

From Boss@work.com  Mon Nov 21 21:10:09 2016

Return-Path: <Boss@work.com>

X-Original-To: lyx

Delivered-To: lyx@centos7.localdomain

subject:work

Date: Mon, 21 Nov 2016 21:08:51 +0800 (CST)

From: Boss@work.com

Status: R

 

Come to the office

 

&

由此可見,不安全的傳統協議是多么的“不靠譜”,所以加密的重要性就無可厚非了,關于密碼的定制也是具有一定能夠的規格和屬性的。

二、安全機制

NIST(美國國家標準與技術研究院)定義的安全屬性  

1.保密性數據保密性、隱私性  

2.完整性:不可篡改、數據完整性、系統完整性  

3.可用性

安全攻擊:STRIDE

Spoofing(假冒)、Tampering(篡改)、Repudiation(否認)、Information Disclosure(信息泄露)

Denial of Service(拒絕服務)和Elevation of Privilege(提升權限)

安全機制的方式:

加密數字簽名、訪問控制、數據完整性、認證交換、流量填充、路由控制、公正

安全服務

認證ca

訪問控制sudo權限

數據保密性

連接保密性:vpn

無連接保密性:tcp  udp

選擇保密性:如工資條的工資

流量保密性:百度推送廣告

數據完整性:不可丟包

不可否認性

   關于安全機制和安全服務的類別,做了簡單的列舉,我們在設置安全規則的時候要注意一定的安全基本原則。

設計基本原則

使用成熟的安全系統、“以小人之心度君子之腹”、外部系統都是不安全的!

減少外部接口、最小授權、缺省使用安全模式安全不是似是而非

從入口處檢查、從管理上保護好你的系統、安全算法

常用安全技術認證、授權、安全通信、審計

密碼算法和協議對稱加密、公鑰加密、單向加密、認證協議

三、對稱加密

對稱加密即為加密和解密使用同一個密碼明文加密(data plain text), 密文加密(cipher text

加密與解密過程

安全與加密、申請CA證書

注:key1=key2

如:A—–BA傳數據給B

data plain text 代表明文 ; data  cipher text 代表密文

data — 加密 (算法,密鑰key1—-data(算法,密鑰key2—data key1==key2 對稱

3.1 加密算法:

DES (數據加密標準,56bits)

3DES(三重數據加密算法,相當于每個數據塊使用三次DES加密算法)

AES (高級加密標準,128bits)

Blowfish,Twofish

IDEA(類似于三重DES)

特性

加密、解密使用同一個密鑰,效率高

將原始數據分割成固定大小的塊,逐個進行加密

缺陷

密鑰過多、密鑰分發困難、數據來源無法確認

四、非對稱加密

非對稱加密:基于一對公鑰/密鑰對,用密鑰對中的一個加密,另一個解密。

公鑰加密:密鑰成對出現

公鑰(public key):公開給所有人、私鑰(secret key):自己留存,必須保證其私密性;

特點:用公鑰加密數據,只能使用與之配對的私鑰解密;反之亦然。

功能:

數字簽名:主要在于讓接收方確認發送方身份

對稱密鑰交換:發送方用對方的公鑰加密一個對稱密鑰后發送給對方

數據加密:適合加密較小數據

缺點:密鑰長,加密解密效率底下

算法:

RSA(加密,數字簽名)

DSA(數字簽名)

ELGamal

4.1 實現加密

接收者:生成公鑰/密鑰對:PS;公開公鑰P,保密私鑰S

發送者:使用接收者的公鑰來加密消息M,將P(M)發送給接收者

接收者:使用密鑰S來解密:M=S(P(M))

安全與加密、申請CA證書

示例: cat  /root/.ssh/known_keyssh遠程鏈接的公鑰

cat /etc/ssh/ssh_host_rsa_keyssh遠程鏈接的私鑰

data — 加密 (算法,密鑰key1—-data(算法,密鑰key2—data key1=key2 非對稱

A——B(主機A加密數據傳給主機B

Apublic key,Pa secret key Sa :生成A的公鑰私鑰

Bpublic key,Sa  secret key Sb :生成B的公鑰私鑰

public key 加密,只能用對應的另一把secret key 解密,反之,一樣

即:對于APa加密 ,對于B:只能拿Sa解密; 對于BSa加密,對于A:只能拿Pa解密

A——-BA手中有B的公鑰或者私鑰) Sa——-Sb Public bdata=data

A加密郵件傳給B;A只有B的公鑰,只能加密,但是不能解密

4.2 實現數字簽名

發送者:生成公鑰/密鑰對:PS;公開公鑰P,保密密鑰S,使用密鑰S來加密消息M,發送給接收者S(M)

接收者:使用發送者的公鑰來解密M=P(S(M)),結合簽名和加密,分離簽名獲得消息。

數字簽名,拿A的私鑰加密,BC,D…都只能拿A的公鑰解密,這樣也確定了是A發送的加密信息

比如:Sa(data)=data=Pa(dara)A的私鑰給data加密,即 數字簽名

 

非對稱式加密效率太低,因而不太適合加密大量的數據

示例:A—-B:要求傳送過程不被人截獲,也不能破解 1k的數據

A加密:Pb[Sa(data)]:先拿A的私鑰給data加密,實現數字簽名,再那B的公鑰加密

    B解密:Sb{Pa[Pb[Sa(data)]]}:先用B的私鑰加密得到A的私鑰加密的數據,再拿A的公鑰解密

這樣也就知道數據是A 那兒傳輸過來的

五、散列算法(單項散列)

散列算法:哈希算法(對數據進行加密成固定的字符串)

將任意數據大小縮減成固定大小的“指紋”或者摘要 (digest

特性任意長度輸入、固定長度輸出

若修改數據,指紋(摘要)也會改變無法從指紋中重新生成;數據內容不變,對應的指紋(摘要)不會變動。

md5sum f3 > f3.md5 cat f3.md5 md5sum –check f3.md5(查看數據是否改變)

無法從指紋中重新生成數據(“單向”)即得到摘要,不可反推原數據

功能:保證數據完整性

常見算式

md5: 128bits  、sha1: 160bits sha224  、sha256  、sha384  、sha512

5.1 md5sum檢查完整性

md5sum | sha1sum [ –check ] file :檢查數據的完整性;hash值是否一樣

rpm -V package :比對下載的軟件是否為正版

opensslgpg

示例 :若修改數據,指紋也會改變

[root@centos7 testdir]# ll

總用量 8

-rw-r–r– 1 root root 6 1123 23:39 f1

-rw-r–r– 1 root root 3 1123 23:39 f2

[root@centos7 testdir]# md5sum f1 f2

b1946ac92492d2347c6235b4d2611184  f1

764efa883dda1e11db47671c4a3bbd9e  f2

[root@centos7 testdir]# echo >> f1   

[root@centos7 testdir]# md5sum f1 f2

14e273e6f416c4b90a071f59ac01206a  f1

764efa883dda1e11db47671c4a3bbd9e  f2

可發現向f1文件中追加一個換行符,f1的“指紋”就發生了改變,f2未改動則“指紋不變”

校驗:

[root@centos7 testdir]# md5sum f1 > f1.md5

[root@centos7 testdir]# md5sum –check f1.md5

f1: 確定

[root@centos7 testdir]# echo ' ' >> f1

[root@centos7 testdir]# md5sum –check f1.md5

f1: 失敗

md5sum: 警告:1 個校驗和不匹配

5.2 hash加密示例

A—-B:要求傳送過程不被人截獲,也不能破解 100M的數據

A加密:Pb100Mdata+Sa[hash(data)]}   設:{100Mdata+Sa[hash(data)]==x

先對100Mdata進行hash算法,在用A的私鑰加密,即數字簽名,隨后附加到100M的數據后面,

再用B的公鑰進行加密,就相當于只用B的公鑰加密了一次

B解密:Sb x –> 100Mdata+Sa[hash(data1)]  Pa{Sa[hash(data)} —>hash(data1)  hash(100Mdata)?==hash(data1)

B先用私鑰進行加密,就能得到100M和附加之后A的私鑰簽名以及數據的hash至,再用A的公鑰解 密得到A的簽名(知道是A的簽名);再用同一種hash運算加密100M數據,用md5sum | sha1sum [ –check ] file,來檢驗hash值是否一樣,md5sum 100Mdata;cat hash(data1)從而保證數據的完整性。

上述是非對稱式加密相當于只加密一次(用Sb解密Pb

更進加密方式:

A加密:key100Mdata+Sa[hash(data)]+Pbkey

此為對稱式加密和非對稱式加密結合,速度快,效率高;先用B的公鑰加密key(對稱式加密的密碼),再用對稱式加密key加密數據。

5.3 密鑰交換算法

密鑰交換:IKEInternet Key Exchange解決對稱式密鑰的交換,即公用一個key

公鑰加密:DH (Deffie-Hellman)

DH

Aa,p協商生成公開的整數a,大素數p;  Ba,p

A:生成隱私數據:x (x<p ),計算得出a^x%p,發送給B;

B:生成隱私數據:y,計算得出a^y%p,發送給A

A:計算得出(ay%px = a^xy%p,生成為密鑰;

B:計算得出(ax%py = a^xy%p, 生成為密鑰;

這樣AB得到的密鑰都為a^xy%p,就能實現數據加密

六、PKICA證書

6.1 PKI;CA基本概念

PKI: 公鑰基礎設施(Public Key Infrastructure);是一種遵循標準的利用公鑰加密技為電子商務的開展提供一套安全基礎平臺的技術和規范。PKI體系結構采用證書管理公鑰,通過第三方的可信機構CA,把用戶的公鑰和用戶的其他標識信息捆綁在一起,在Internet網上驗證用戶的身份,PKI體系結構把公鑰密碼和對稱密碼結合起來,在Internet網上實現密鑰的自動管理,保證網上數據的機密性、完整性。

CA: CA(Certificate Authority),是負責發放和管理數字證書的權威機構,并作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。

簽證機構:CA(Certificate Authority)

注冊機構:RA

證書吊銷列表:CRL

X.509定義了證書的結構以及認證協議標準;

包含有:版本號、序列號、簽名算法、頒發者、有效期限主題名稱、主體公鑰CRL分發點、擴展信息

發行者簽名證書獲取

證書類型證書授權機構的證書、服務器用戶證書

獲取證書的兩種方法

1、使用證書授權機構

生成簽名請求(csr 、csr發送給CA 、CA處接收簽名

2自簽名的證書即自己簽發自己的公鑰

證書申請驗證過程

申請證書方申請證書時,需要按規定填寫申請表以及生成密鑰提交申請,CA簽署后發回給申請者;CA的證書是屬于自簽證書。 在互相得到了證書后,到CA獲取公鑰進行解密,解密成功可證實對方身份,之前還需要進行核實證書的有效期限和是否被吊銷等信息。

安全與加密、申請CA證書

6.2 安全協議SSL/TLS

SSLSecure Socket Layer 安全套接層

TLSTransport Layer Security 傳輸層安全:對數據進行加密

RFC:最新最全的網絡細節

功能:機密性,認證,完整性,重放保護(被截獲的數據重新發送)

兩階段的協議,分為握手階段和應用階段:

握手階段(協商階段): 客戶端和服務器端認證對方身份(依賴PKI體系,利用數字證書進行身份認證),并協商通信中使用的安全參數、密碼套件以及主密鑰。后續通信使用的所有密鑰都是通過MasterSecret 生成。

應用階段:在握手階段完成后進入,在應用階段通信雙方使用握手階段協商好的密鑰進行安全通信。

兩階段的協議又包括:

Handshake 協議:包括協商安全參數和密碼套件、服務器身份認證(客戶端身份認證可選)、密鑰交換

ChangeCipherSpec 協議:一條消息表明握手協議已經完成

Alert協議:對握手協議中一些異常的錯誤提醒,分為fatalwarning 兩個級別,fatal 類型錯誤會直接中斷SSL    鏈接,而warning 級別的錯誤SSL 鏈接仍可繼續,只是會給出錯誤警告。

Record 協議:包括對消息的分段、壓縮、消息認證和完整性保護、加密等

HTTPS 協議:就是“HTTP協議”和“SSL/TLS協議”的組合。HTTP over SSL”或“HTTP over TLS”,對http    議的文本數據進行加密處理后,成為二進制形式傳輸。

6.3 openssl

openssl命令:OpenSSL是一個強大的安全套接字層密碼庫;開源項目,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,并提供豐富的應用程序供測試或其它目的使用。

三個組件:

openssl:多用途的命令行工具

libcrypto:加密算法庫

libssl: 加密模塊應用庫,實現ssltls

兩種運行模式:交互模式和批處理模式

直接輸入openssl回車進入交互模式

輸入帶命令選項的openssl進入批處理模式。

6.3.1對稱加密算法

OpenSSL一共提供了8種對稱加密算法,其中7種是分組加密算法,僅有的一種流加密算法是RC4。 7種分組加密算法分別是AESDES、BlowfishCAST、IDEARC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長度是128位,其它算法使用的則是64位。事實上,DES算法里面不僅僅是常用的DES算法,還支持三個密鑰和兩個密鑰3DES算法。

工具: openssl enc, gpg

加密:

[root@centos7 testdir]# openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher

enter des-ede3-cbc encryption password:

Verifying – enter des-ede3-cbc encryption password:

解密:

[root@centos7 testdir]# openssl enc -d -des3 -a -salt -in testfile.cipher -out testfile1

enter des-ede3-cbc decryption password:

6.3.2 非對稱加密算法

OpenSSL一共實現了4種非對稱加密算法,包括DH算法、RSA算法、DSA算法和橢圓曲線算法(EC)。DH算法一般用戶密鑰交換。RSA算法既可以用于密鑰交換,也可以用于數字簽名,當然,如果你能夠忍受其緩慢的速度,那么也可以用于數據加密。DSA算法則一般只用于數字簽名。

信息摘要算法 OpenSSL實現了5種信息摘要算法,分別是MD2MD5、MDC2SHASHA1)和RIPEMD。SHA算法事實上包括了SHASHA1兩種信息摘要算法,此外,OpenSSL還實現了DSS標準中規定的兩種信息摘要算法DSSDSS1。

 

工具:md5sum, sha1sum,sha224sum.sha256sum… openssl dgst

SHA1算法計算文件file.txt哈希值,輸出到stdout

# openssl dgst -sha1 file.txt

SHA1算法計算文件file.txt哈希值,輸出到文件digest.txt

# openssl sha1 -out digest.txt file.txt

6.3.4生成用戶密碼

openssl passwd -1 -salt SALT(最多8)

passwd命令:man sslpasswd

[root@centos7 ~]# openssl passwd -1 -salt lyx

Password:

$1$centos$Sm4Goo.NmvaS9rG86gpF01

6.3.5生成隨機數(man sslrand

openssl rand -base64 | -hex NUM

NUM:  表示字節數;-hex 時,每個字符4 位,出現的字符數為NUM*2

tr -dc A-Za-z0-9_ < /dev/urandom|head -c 20|xargs

6.3.6 生成密鑰對(man genrsa

openssl rsa -in PRIVATEKEYFLE -pubout -out PUBLICKEYFILE

openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

生成密鑰

[root@centos7 ~]# (umask 077; openssl genrsa -out key.pem -passout pass:centos -des 2048 )

Generating RSA private key, 2048 bit long modulus

………+++

……………………………………….+++

e is 65537 (0x10001)

從私鑰中提取公鑰

[root@centos7 ~]# openssl rsa -in key.pem -passin pass:centos -pubout -out pubkey.pem

writing RSA key

隨機數生成器:偽隨機數字

鍵盤和鼠標塊設備中斷

/dev/random:僅從熵池返回隨即誰;隨機數用盡,阻塞

/dev/urandom:從熵池返回隨機數;隨機數用盡,會利用軟件生成偽隨機數,非阻塞

6.4 證書管理

證書申請及簽署步驟:

1生成申請請求 2、RA核驗 3CA簽署 4、獲取證書 5創建CA和申請證書

6.4創建私有CA

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

[root@centos7 ~]# vim /etc/pki/tls/openssl.cnf

[ CA_default ]

dir             = /etc/pki/CA            # 工作目錄

certs           = $dir/certs             # 簽署文件證書目錄

crl_dir         = $dir/crl                # 吊銷列表

database        = $dir/index.txt          # 數據庫索引文件

#unique_subject = no                    #

                                         #

new_certs_dir   = $dir/newcerts          # 當前簽署的證書目錄

certificate     = $dir/cacert.pem         # CA自身的證書

serial          = $dir/serial             # 當前簽署的證書編號

crlnumber       = $dir/crlnumber         # 吊銷列表編號

                                         #

crl             = $dir/crl.pem           # 當前使用的crl

private_key     = $dir/private/cakey.pem  # CA的私有KEY

RANDFILE        = $dir/private/.rand     # private random number file

x509_extensions = usr_cert               # The extentions to add to the cert

配置文件中可以看到定義CA的默認屬性;了解屬性后即可配置CA

6.4.1創建所需要的文件

[root@centos7 ~]# cd /etc/pki/CA/

[root@centos7 CA]# touch index.txt

[root@centos7 CA]# echo 01 > serial (生成序列號)

6.4.2 CA自簽證書

6.4.2.1生成私鑰 

#cd /etc/pki/CA/

[root@centos7 CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

……………+++

……………………………………..+++

e is 65537 (0x10001)

注意()表示里面修改的umask值,只對括號里面的私鑰文件有效

#cd /etc/pki/CA/private  

#ll cakey.pem ;cat cakey.pem(查看生成的私鑰)

6.4.2.2生成自簽證書

[root@centos7 CA]# openssl req -new -x509 -key private/cakey.pem -days 365 -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             #國家名稱(2字母代碼)

State or Province Name (full name) []:beijing           #州或省名稱(全名)

Locality Name (eg, city) [Default City]:haidian         #地區名稱(如城市)(默認城市)

Organization Name (eg, company) [Default Company Ltd]:linux     #組織名稱(如公司)(默認有限公司)

Organizational Unit Name (eg, section) []:centos      #組織單元名稱(例如,部門)

Common Name (eg, your name or your server's hostname) []:ca.linux.com  #常見的名字(例如你的名字或你                      的服務器的主機名)

Email Address []:ca@linux.com          #郵件地址

注:命令選項釋義

-new: 生成新證書簽署請求

-x509: 專用于CA生成自簽證書

-key: 生成請求時用到的私鑰文件

-days n:證書的有效期限

-out /PATH/TO/SOMECERTFILE: 證書的保存路徑

6.4.3頒發證書

在需要使用證書的主機生成證書請求;

示例:HTTPS的實現

1.web服務器生成私鑰

[root@lv-6 ~]# mkdir /etc/httpd/ssl

[root@lv-6 ~]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

Generating RSA private key, 2048 bit long modulus

…………………………………………………….+++

………………………………..+++

e is 65537 (0x10001)

[root@lv-6 ~]# ll /etc/httpd/ssl/

總用量 4

-rw——- 1 root root 1675 1124 15:47 httpd.key

2.生成證書申請文件

[root@lv-6 ~]# 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]:haidian

Organization Name (eg, company) [Default Company Ltd]:linux

Organizational Unit Name (eg, section) []:IT

Common Name (eg, your name or your server's hostname) []:lv.linux.com

Email Address []:lv@linux.com

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

#CA上證書生成是差不多的,區別在于主機名和多了個密碼,密碼這里留空

#由于是內部使用,注意:默認國家,省,公司名稱必須和CA一致

3.將證書請求文件傳輸給CA

#CA主機上/etc/pki/下創建用于存儲審核文件的目錄

[root@centos7 CA]# mkdir /etc/pki/sign

[root@centos7 CA]# cd /etc/pki/sign

#將文件傳輸給CA

[root@lv-6 ~]# scp /etc/httpd/ssl/httpd.csr 172.16.254.254:/etc/pki/sign

root@172.16.254.254's password:

httpd.csr                                                    100% 1045     1.0KB/s   00:00

CA簽署證書,并將證書頒發給請求者;

[root@centos7 sign]# openssl ca -in httpd.csr -out 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: Nov 24 08:08:11 2016 GMT

             Not After : Nov 24 08:08:11 2017 GMT

         Subject:

             countryName                = CN

              stateOrProvinceName        = Beijing

             organizationName           = linux

             organizationalUnitName      = centos

             commonName                = lv.linux.com

             emailAddress               = lv@linux.com

         X509v3 extensions:

             X509v3 Basic Constraints:

                 CA:FALSE

             Netscape Comment:

                 OpenSSL Generated Certificate

             X509v3 Subject Key Identifier:

                 45:BE:5E:35:36:07:2D:6F:F5:1B:84:7B:A0:49:D4:2F:C3:08:63:0C

             X509v3 Authority Key Identifier:

                 keyid:6F:BD:95:95:1C:69:CF:C5:D4:9B:09:39:83:7F:F9:AD:21:C3:3A:B5

 

Certificate is to be certified until Nov 24 08:08:11 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

# 將證書頒發給請求者

[root@centos7 sign]# scp httpd.crt 172.16.54.54:/etc/httpd/ssl/

The authenticity of host '172.16.54.54 (172.16.54.54)' can't be established.

ECDSA key fingerprint is cc:6d:c9:4a:8f:78:7a:b7:87:01:6d:c8:2d:28:cd:26.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '172.16.54.54' (ECDSA) to the list of known hosts.

root@172.16.254.254's password:

httpd.crt                                                    100% 4593     4.5KB/s   00:00

[root@lv-6 ~]# ls /etc/httpd/ssl/

httpd.crt  httpd.csr  httpd.key

#請求主機收到證書

查看證書中的信息

openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|subject|serial|dates

4驗證

#1.安裝mod_ssl模塊

[root@lv-6 ~]# yum -y install mod_ssl

#2.編輯ssl的配置文件,定義虛擬主機

[root@lv-6 ~]# vim /etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>

 

DocumentRoot "/var/www/html"

ServerName lv.linux.com:443

 

SSLCertificateFile /etc/httpd/ssl/httpd.crt  

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

#3.啟動http服務

[root@lv-6 ~]# systemctl start httpd.service

[root@lv-6 ~]# ss -tnl

State       Recv-Q Send-Q  Local Address:Port                 Peer Address:Port

LISTEN      0      128                :::80                             :::*    

LISTEN      0      128                :::443                            :::*   

#4.訪問測試

需將CA的證書導入到客戶端主機,否則CA將不會被信任。

[root@centos7 ~]# cp /etc/pki/CA/cacert.pem /etc/pki/ca-trust/source/anchors/

[root@centos7 ~]# update-ca-trust

[root@centos7 ~]# curl https://lv.linux.com

Hello,I'm lv

至此一個簡單的CA以及申請和簽署步驟已完成。這種CA一般應用于內部局域網,如大范圍使用或專業使用,建議使用OpenCA或者購買專業公司提供的。

6.2.4吊銷證書

證書吊銷需要在用戶申請或者用戶未付款的情況下。正常狀態下是不能操作的。

在客戶端獲取要吊銷的證書的serial

openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

CA上,根據客戶提交的serialsubject信息,對比檢驗是否與index.txt文件中的信息一致

openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

吊銷證書

生成吊銷證書的編號(第一次吊銷一個證書時才需要執行)

echo 01 > /etc/pki/CA/crlnumber

更新證書吊銷列表

openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl

查看crl文件:

openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

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

(0)
lyxlyx
上一篇 2016-12-04
下一篇 2016-12-04

相關推薦

  • 在軟raid10上使用LVM,并且進行磁盤配額,最后還原。

    實驗環境 1)centos 7.3 2)lvm格式化的文件系統為ext4 3)磁盤為單一磁盤的不同分區 4)使用軟件:mdadm,lvm2 tools,quota 軟raid10的創建 一,兩個raid1的創建 1)對磁盤進行分區,使用工具fdidk,每個大小為1GB,類型改為fd。我的分區情況:/dev/sda{6,7,8,9}將會拿來做為raid的磁盤?!?/p>

    Linux干貨 2017-03-16
  • ansible學習筆記

    簡介:  在日常服務器維護中,從系統安裝到程序部署再到發布應用,在大規模的生產環境中,如果需要手動的每臺服務器進行安裝配置將會給運維人員帶來許多繁瑣而又重復的工作。這就促使了在每個運維層次中出現了不同的自動化運維工具。 常見的自動化運維工具分類有以下幾類:  系統安裝運維工具(OS Provisioning):    …

    Linux干貨 2015-08-17
  • 使用Openssl構建私有CA

    使用Openssl構建私有CA Openssl是SSL的開源實現,是一種安全機密程序,主要用于提高遠程登錄訪問的安全性。也是目前加密算法所使用的工具之一,功能很強大。     Openssl為網絡通信提供安全及數據完整性的一種安全協議,包括了主要的密碼算法、常用的密鑰和證書封裝管理功能(CA)以及SSL協議,并提供了豐…

    Linux干貨 2015-10-07
  • 搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress)

    架構簡介 參加馬哥linux培訓一周了,自己感覺每天都進步很多,現在來說說這個架構,也是架構師第一周的作業第二題。搭建一套LVS-DR模型的高性能集群,做了兩天終于完成并實現了這個架構,我設計的架構圖如下所示: 此架構主要是用ipvsadm來實現高性能集群,Realserver(RS1,RS2)安裝配置nginx,RS服務器分別配置了一個內網,一個外網。正?!?/p>

    Linux干貨 2016-12-06
  • LAMP架構實驗1

    LAMP架構實驗 — 基礎架構搭建 實驗實驗拓撲圖與目的 實驗過程 總結與問題 實驗實驗拓撲圖與目的 1. 實驗主框架LAMP采用編譯安裝。 2. 分離HTTPD,PHP,MARIADB。 3. 兩臺服務器能夠各自被訪問且內容相同。 實驗過程 程序包準備: apr-1.5.2.tar.gz          …

    Linux干貨 2016-05-10
  • 正則表達式練習題及作業(8.5)

    當天練習題: 基本正則表達式練習題 1.顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式)   可有四種方式 [root@CentOS7 ~]# cat /proc/meminfo | grep -E "^(s|S)" SwapCac…

    Linux干貨 2016-08-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-27 15:26

    文章內容詳細,理論與實踐完好的結合了起來,行間隔緊湊一點會不會更好看呢?

欧美性久久久久