1. 程式人生 > >https和server-status配置案例

https和server-status配置案例

prot pool 開啟 交換 分用 tls協議 hostname extension nec

                    https和server-status配置案例

                                      作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

一.https協議   我們知道http協議是明文的,所以,你的數據發送不管是請求報文(request)還是響應報文(response)統統都是明文的。對於很多數據來講都是無所謂的,因為你的網站就是讓別人來訪問的,但是你想訪問一些敏感的資源(比如,你登錄支付寶,登錄淘寶賬號,銀行網站等等)就顯得不是那麽靠譜了,你想想把你的銀行卡號和密碼以及你的身份證ID直接放在互聯網上裸奔這意味著什麽?你就不怕駭客搞事情嗎?這個時候我們就需要一個比較安全的協議來幫我們發送或接受這些數據。因此我們想要實現網頁間的數據加密發送,這個時候https就出現啦。
  http協議是基於SSL(Secure Socket Layer,安全的套接字層)或TLS(Transport Layer Security ,傳輸層安全)協議實現的,但是很多時候我們都把它們通常為SSL協議。事實上SSL和TLS的功能是一樣的,因為SSL早期是網景公司所研發的,所以為了避免受制於人,國際標準化組織又重新利用了一種類似的機制研制了一套開發的標準。其中SSL協議比較流行的版本是:sslv3,而TLS協議用的比較流行的是tlsv1版本。現如今網景公司已經被解散,關於更多的八卦請參考:https://baike.baidu.com/item/%E7%BD%91%E6%99%AF/70176?fr=aladdin&fromid=15469634&fromtitle=%E7%BD%91%E6%99%AF%E5%85%AC%E5%8F%B8
1.SSL會話的建立   第一步:客戶端和服務器端先建立TCP/IP的三次握手,雙方建立連接;   第二步:建立連接之後,在TCP會話的基礎上二者開始做SSL之間的協商(由於客戶端(如瀏覽器)對一些加解密算法的支持程度不一樣,雙方要選擇都支持的對稱加密非對稱加密以及單向加密算法等等),客戶端會將自己支持的加密套件(Cipher Suite)的列表傳送給服務端。除此之外,客戶端還要產生一個隨機數,這個隨機數一方面需要在客戶端保存,另一方面需要傳送給服務端;   第三步:服務端接收到客戶端的請求之後,服務端需要從中選出一種加密算法和HASH算,並將自己的身份信息以證書的形式發回給客戶端。   第四步:客戶端需要對接收到的服務端的證書進行檢查,驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書(公鑰)受信任,則瀏覽器欄裏面會顯示一個小鎖頭,否則會給出證書不受信的提示。客戶端在驗證服務器端身份是可信任的之後,就會用服務器端提供的證書(公鑰)去加密一個臨時對稱秘鑰發送給服務端;
  第五步:服務端用自己的私鑰去解密客戶端發來的信息,就會拿到客戶端發來的臨時對稱秘鑰,換句話說,這個過程就是實現了秘鑰交換(有兩種秘鑰交換機制),服務器端要生產一個雙方都支持的對稱加密秘鑰;   第六歩:接下來,雙方都達成了相應的通信機制,接下來所有的網頁請求發送都以加密的方式實現啦。   我們知道HTTP協議是無狀態的,那麽HTTPS當然也是無狀態的,那就意味著每次發送數據都得去驗證等等,這樣無疑會浪費很多時間,索性我們可以將這一系列結果臨時緩存到瀏覽器本地上,這樣我們就在短時間類每次發送數據都如此麻煩了。但一般來講,為了可靠性起見,SSL有效的會話期是你當前瀏覽器的進程周期,這意味著你瀏覽器關閉之後,你就得重新驗證。以上六個步驟是一個大致的SSL會話機制,實際會話比這個要復雜的多,我這裏只是列出了一個大致的步驟方便我自己後期理解。我們也可以說SSL握手要完成的工作:交換協議版本號;選擇一個雙方都支持的加密方式;對兩端實現身份驗證;密鑰交換等等。 擴展小知識:密鑰交換的兩種機制   a>.公鑰加密實現:發送方用接收方的公鑰加密自己的密鑰,接收方用自己的私鑰解密得到發送方的密鑰,逆過來亦然,從而實現密鑰交換。   b>.使用DH算法:前提發送方和接受方協商使用同一個大素數P和生成數g,各自產生的隨機數X和Y。發送方將g的X次方mod P產生的數值發送給接收方,接受方將g的Y次方mod P產生的數值發送給發送方,發送方再對接收的結果做X次方運算,接受方對接收的結果做Y次方運算,最終密碼形成,密鑰交換完成。 2.數字證書格式 數字證書的基本格式如下:   a>.證書格式的版本號( 格式普遍采用的是X.509V3國際標準)   b>.證書序列號   c>.證書簽名算法   d>.證書頒發者   e>.有效期   f>.持有者的名稱(對象名稱)   g>.持有者的公鑰(對象的公開秘鑰)   h>.CA的ID   i>.持有者的ID   j>.其他擴展信息     基本約束     證書策略     密鑰的使用限制   k>.CA簽名 技術分享   如上圖所示,證書在數字簽名的時候是將證書格式版本號,證書序列號,....,其他擴展信息等這些有效信息做一下單向加密算法取出來數字摘要信息(也就是指紋信息)然後用自己的私鑰去加密這個信息的結果就是數字簽名。把數字簽名的結果放再數字證書的最後端。   擴展小知識:什麽是PKI(Public Key Infrastructure)     PKI是Public Key Infrastructure的首字母縮寫,翻譯過來就是公鑰基礎設施;PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平臺的技術和規範。它主要包括:       a>.端實體(申請者)       b>.註冊機構(RC)       c>.簽證機構(CA)------->簽證機構(CA)       d>.證書撤銷列表(CRL)發布機構       e>.證書存取庫 3.HTTTP和HTTPS事務對比   HTTPS並非是應用層的一種新協議。只是HTTP通信接口部分用SSL(Secure Socker Layer)和 TLS(Transport Layer Security)協議代替而已。簡言之,所謂HTTPS,其實就是身披 SSL 協議這層外殼的HTTP。TLS/SSL 是獨立於HTTP的協議,是介於 TCP 和 HTTP 之間的一層安全協議,不影響原有的 TCP 協議和 HTTP 協議,所以使用 HTTPS 基本上不需要對 HTTP 頁面進行太多的改造。不光是HTTP協議,其他運行在應用層的SMTP 和 Telnet等協議均可配合SSL協議的使用。下圖就是一次http和https處理事務的對比圖: 技術分享   要註意的是:http是文本協議而https則是二進制格式的協議。http基於的是80端口,而https默認使用的端口是443端口。 因為SSL會話是基於IP地址進行的,所以不支持在基於主機名(FQDN)的虛擬主機上實現。 4.為什麽不都使用HTTPS   既然HTTPS那麽完全可靠,那為何所有的Web網站不一直使用HTTPS?主要是因為以下幾個原因: a>.與純文本通信相比,加密通信會消耗更多的CPU及內存資源。   如果每次通信都加密,會消耗相當多的資源,平攤到一臺計算機上時,能處理的請求數量必定會隨之減少。因此,如果是非敏感信息還是用HTTP通信,只有在包含個人敏感數據時,才利用HTTPS加密通信。特別是每當那些訪問量較多的Web網站在進行加密處理時,並非對所有內容都進行加密處理,而是僅對那些需要信息隱藏時才會加密,以節約資源。 b>.節約購買證書的開銷。   要進行HTTPS通信,證書是必不可少的。而使用的證書必須向認證機構(CA)購買。證書價格根據不同的認證機構略有不同,一年幾百到幾千的都有,那些購買證書並不合算的服務以及一些個人網站,可能只會選擇采用HTTP的通信方式。 c>.HTTPS使用SSL時,它的處理速度會變慢。   SSL的慢有兩種,一是通信慢,二是大量消耗CPU及內存等資源,導致處理速度變慢。和HTTP相比,網絡負載可能會慢2到100倍。除去和TCP連接、發送HTTP請求和響應以外,還必須進行SSL通信,因此整體上處理通行量不可避免會增加。SSL必須進行加密處理。在服務器和客戶端都需要進行加密和解密的運算處理。因此,比起HTTP會更多地消耗服務器和客戶端的硬件資源,導致負載增強。當然,可以通過使用SSL加速器這種硬件來改善該問題。 5.客戶端驗證服務器端證書的步驟   我們知道驗證是雙方都可以驗證的,不僅僅是客戶端驗證服務器端,服務器端照樣是可以驗證客戶端的。一般來講,在互聯網應用上我們客戶端要證書也沒有用,所以通常都是客戶端驗證服務器端,而客戶端驗證服務器端證書時,它的驗證方式又是如何進行的呢?我們大致歸為以下幾點:   a>.日期檢查,證書是否在有效期內;   b>.證書頒發者的可信度;   c>.證書的簽名檢測;   d>.持有者的身份檢測; 二.基於httpd實現https機制的配置過程 1.httpd配置https的必要條件   a>.我們知道httpd是基於mod_ssl模塊實現對ssl的支持的,因此我們要實現https基於httpd來實現,首先我們得安裝這個模塊並且需要加載這個模塊;   b>.要確保httpd能夠監聽在443端口上;   c>.要想使用https服務器需要有證書(我們可以自建CA證書也可以在互聯網上去申請一個CA證書,當然你是需要支付費用的)和私鑰; 2.自建CA證書配置 [root@yinzhengjie ~]# cd /etc/pki/CA/ [root@yinzhengjie CA]# ls certs crl newcerts private [root@yinzhengjie CA]# [root@yinzhengjie CA]# (umask 077;openssl genrsa 2048 > private/cakey.pem) ------>自建CA證書 Generating RSA private key, 2048 bit long modulus ......................................................................+++ ..........................+++ e is 65537 (0x10001) [root@yinzhengjie CA]# [root@yinzhengjie CA]# ls -l private/ total 4 -rw-------. 1 root root 1675 Oct 22 07:58 cakey.pem [root@yinzhengjie CA]# 3.配置自簽證書(該證書主要是給客戶端用的,然後安裝該證書即可)   在修改之前為了我們不用每次都輸入證書信息,可以編輯配置證書的文件/etc/pki/tls/openssl.cnf,我們只需要修改以下幾項即可,其他選項可以修改也可以不修改。如果沒有修改的部分在簽發證書的時候需要手動輸入,具體的可以看以下的演示過程。
 1 [root@yinzhengjie ~]# more /etc/pki/tls/openssl.cnf  | grep countryName_default
 2 #countryName_default            = XX            
 3 countryName_default             = CN            ------>修改國家名字為中國
 4 [root@yinzhengjie ~]# 
 5 [root@yinzhengjie ~]# more /etc/pki/tls/openssl.cnf  | grep stateOrProvinceName_default
 6 #stateOrProvinceName_default    = Default Province
 7 stateOrProvinceName_default     = BeiJing    ------->修改省份為北京
 8 [root@yinzhengjie ~]# 
 9 [root@yinzhengjie ~]# more /etc/pki/tls/openssl.cnf  | grep localityName_default
10 #localityName_default   = Default City
11 localityName_default    = Yizhuang Economic Development Zone        ----->修改所在區域
12 [root@yinzhengjie ~]# 
13 [root@yinzhengjie ~]# more /etc/pki/tls/openssl.cnf  | grep 0.organizationName_default
14 #0.organizationName_default     = Default Company Ltd
15 0.organizationName_default      = Chinese Academy of Medical Sciences    ---->修改你所在的單位
16 [root@yinzhengjie ~]# 
17 [root@yinzhengjie ~]# 
18 [root@yinzhengjie ~]# more /etc/pki/tls/openssl.cnf  | grep organizationalUnitName_default
19 #organizationalUnitName_default = World Wide Web Pty Ltd
20 organizationalUnitName_default  = LinuxOperation        ------>修改你擔任的職位
21 [root@yinzhengjie ~]# 
22 [root@yinzhengjie CA]# openssl req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem    
23 You are about to be asked to enter information that will be incorporated
24 into your certificate request.
25 What you are about to enter is what is called a Distinguished Name or a DN.
26 There are quite a few fields but you can leave some blank
27 For some fields there will be a default value,
28 If you enter ., the field will be left blank.
29 -----
30 Country Name (2 letter code) [CN]:
31 State or Province Name (full name) [BeiJing]:
32 Locality Name (eg, city) [Yizhuang Economic Development Zone]:
33 Organization Name (eg, company) [Chinese Academy of Medical Sciences]:
34 Organizational Unit Name (eg, section) [LinuxOperation]:
35 Common Name (eg, your name or your servers hostname) []:ca.yinzhengjie.org.cn      
36 Email Address []:[email protected]
37 You have new mail in /var/spool/mail/root
38 [root@yinzhengjie CA]# 
39 [root@yinzhengjie CA]# ls
40 cacert.pem  certs  crl  newcerts  private
41 [root@yinzhengjie CA]# 
42 [root@yinzhengjie CA]# touch index.txt serial crlnumber
43 [root@yinzhengjie CA]# echo 01 > serial
44 [root@yinzhengjie CA]# ls
45 cacert.pem  certs  crl  crlnumber  index.txt  newcerts  private  serial
46 [root@yinzhengjie CA]# 

4.在web服務器端生成秘鑰
 1 [root@yinzhengjie ~]# cd /etc/httpd/conf
 2 [root@yinzhengjie conf]# 
 3 [root@yinzhengjie conf]# mkdir ssl
 4 [root@yinzhengjie conf]# cd ssl/
 5 [root@yinzhengjie ssl]# 
 6 [root@yinzhengjie ssl]# (umask 077;openssl genrsa 1024 > http.key)    ----生成服務器的私鑰
 7 Generating RSA private key, 1024 bit long modulus
 8 ..........++++++
 9 ...++++++
10 e is 65537 (0x10001)
11 [root@yinzhengjie ssl]# 
12 [root@yinzhengjie ssl]# ll
13 total 4
14 -rw-------. 1 root root 887 Oct 22 08:22 http.key
15 [root@yinzhengjie ssl]# 

5.生成證書簽署請求
 1 [root@yinzhengjie ssl]# openssl req -new -key http.key -out httpd.csr
 2 You are about to be asked to enter information that will be incorporated
 3 into your certificate request.
 4 What you are about to enter is what is called a Distinguished Name or a DN.
 5 There are quite a few fields but you can leave some blank
 6 For some fields there will be a default value,
 7 If you enter ., the field will be left blank.
 8 -----
 9 Country Name (2 letter code) [CN]:
10 State or Province Name (full name) [BeiJing]:
11 Locality Name (eg, city) [Yizhuang Economic Development Zone]:
12 Organization Name (eg, company) [Chinese Academy of Medical Sciences]:
13 Organizational Unit Name (eg, section) [LinuxOperation]:
14 Common Name (eg, your name or your servers hostname) []:www.yinzhengjie.org.cn   
15 Email Address []:[email protected]
16 
17 Please enter the following extra attributes
18 to be sent with your certificate request
19 A challenge password []:            ------>此處的密碼可以設置為空,直接回車即可。
20 An optional company name []:
21 [root@yinzhengjie ssl]# 
22 [root@yinzhengjie ssl]# ll
23 total 8
24 -rw-r--r--. 1 root root 814 Oct 22 08:27 httpd.csr
25 -rw-------. 1 root root 887 Oct 22 08:22 http.key
26 [root@yinzhengjie ssl]# 

6.進行CA簽名
 1 [root@yinzhengjie ssl]# openssl ca -in httpd.csr -out httpd.crt        ----->進行CA簽名生成一個證書。
 2 Using configuration from /etc/pki/tls/openssl.cnf
 3 Check that the request matches the signature
 4 Signature ok
 5 Certificate Details:
 6         Serial Number: 2 (0x2)
 7         Validity
 8             Not Before: Oct 22 15:38:27 2017 GMT
 9             Not After : Oct 22 15:38:27 2018 GMT
10         Subject:
11             countryName               = CN
12             stateOrProvinceName       = BeiJing
13             organizationName          = Chinese Academy of Medical Sciences
14             organizationalUnitName    = LinuxOperation
15             commonName                =  www.yinzhengjie.org.cn   
16             emailAddress              = [email protected]
17         X509v3 extensions:
18             X509v3 Basic Constraints: 
19                 CA:FALSE
20             Netscape Comment: 
21                 OpenSSL Generated Certificate
22             X509v3 Subject Key Identifier: 
23                 34:91:A0:33:0C:2C:FB:16:64:9D:E8:D7:1D:B5:10:84:F7:E5:40:6A
24             X509v3 Authority Key Identifier: 
25                 keyid:3E:ED:2C:12:AF:F5:98:40:31:01:E7:8F:51:39:0B:24:4C:ED:41:4B
26 
27 Certificate is to be certified until Oct 22 15:38:27 2018 GMT (365 days)
28 Sign the certificate? [y/n]:y
29 
30 
31 1 out of 1 certificate requests certified, commit? [y/n]y
32 Write out database with 1 new entries
33 Data Base Updated
34 [root@yinzhengjie ssl]# 
35 [root@yinzhengjie ssl]# ll
36 total 16
37 -rw-r--r--. 1 root root 4203 Oct 22 08:38 httpd.crt
38 -rw-r--r--. 1 root root  822 Oct 22 08:37 httpd.csr
39 -rw-------. 1 root root  887 Oct 22 08:37 http.key
40 [root@yinzhengjie ssl]# 

7.安裝mod_ssl模塊
 1 [root@yinzhengjie ssl]# grep mod_ssl /etc/httpd/conf/httpd.conf     ---->查看是否已經安裝mod_ssl模塊。
 2 # (e.g. :80) if mod_ssl is being used, due to the nature of the
 3 [root@yinzhengjie ssl]# 
 4 [root@yinzhengjie ssl]# grep mod_ssl /etc/httpd/conf.d/*.conf     ----->去子目錄也查一遍;
 5 [root@yinzhengjie ssl]# 
 6 [root@yinzhengjie ssl]# yum -y install mod_ssl                ----->安裝mod_ssl模塊;
 7 [root@yinzhengjie ssl]# rpm -ql mod_ssl                        ------>查mod_ssl安裝的文件;
 8 /etc/httpd/conf.d/ssl.conf
 9 /usr/lib64/httpd/modules/mod_ssl.so
10 /var/cache/mod_ssl
11 /var/cache/mod_ssl/scache.dir
12 /var/cache/mod_ssl/scache.pag
13 /var/cache/mod_ssl/scache.sem
14 [root@yinzhengjie ssl]# 

8.編輯ssl的配置文件
 1 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep DocumentRoot
 2 DocumentRoot "/var/www/html"            ---->設置網站的根目錄
 3 [root@yinzhengjie ssl]# 
 4 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep ServerName
 5 ServerName www.yinzhengjie.org.cn:443    ------>設置主機名
 6 [root@yinzhengjie ssl]# 
 7 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep ErrorLog
 8 ErrorLog logs/ssl_error_log                ------->定義錯誤日誌路徑
 9 [root@yinzhengjie ssl]# 
10 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep TransferLog
11 TransferLog logs/ssl_access_log            ------->定義訪問日誌路徑,註意,由於https是二進制格式的協議,因此和httpd的主配置文件定義訪問日誌的指令是不一樣的喲
12 [root@yinzhengjie ssl]# 
13 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep LogLevel | grep -v ^#
14 LogLevel warn                            --------->定義日誌級別
15 [root@yinzhengjie ssl]# 
16 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep SSLEngine
17 SSLEngine on                            --------->將SSL功能開啟,啟用基於SSL的虛擬主機;
18 [root@yinzhengjie ssl]# 
19 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep SSLProtocol
20 SSLProtocol all -SSLv2                    ---------->表示支持所有的SSL協議,處理-SSLv2版本,換句話說它就只剩下-SSLv3以及TLSv1啦。
21 [root@yinzhengjie ssl]# 
22 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
23 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES    ------>指定SSL的加密套件,註意,感嘆號(!)表示不支持的算法,加號(+)表示支持加密算法。
24 [root@yinzhengjie ssl]# 
25 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep SSLCertificateFile | grep -v ^#
26 SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt            ------>指定WEB服務器端證書
27 [root@yinzhengjie ssl]# 
28 [root@yinzhengjie ssl]# more /etc/httpd/conf.d/ssl.conf | grep SSLCertificateKeyFile
29 SSLCertificateKeyFile /etc/httpd/conf/ssl/http.key        ------->指定WEB服務器的私鑰
30 [root@yinzhengjie ssl]# 
31 [root@yinzhengjie ssl]# httpd -t            ---------->檢查配置是否正確
32 httpd: apr_sockaddr_info_get() failed for yinzhengjie
33 httpd: Could not reliably determine the servers fully qualified domain name, using 127.0.0.1 for ServerName
34 Syntax OK                            -------->說明語法配置無誤!
35 [root@yinzhengjie ssl]# 
36 [root@yinzhengjie ssl]# service httpd restart    ------->重啟web服務。
37 Stopping httpd: [  OK  ]
38 Starting httpd: httpd: apr_sockaddr_info_get() failed for yinzhengjie
39 httpd: Could not reliably determine the servers fully qualified domain name, using 127.0.0.1 for ServerName
40 [  OK  ]
41 [root@yinzhengjie ssl]# 
42 [root@yinzhengjie ssl]# ss -tnl | grep 443    ------->查看443端口是否正常監聽
43 LISTEN     0      128                      :::443                     :::*     
44 [root@yinzhengjie ssl]# 
45 [root@yinzhengjie ~]# openssl s_client -connect www.yinzhengjie.org.cn:443 -CAfile /etc/pki/CA/cacert.pem                     ------->我們可以基於本地的命令行進行測試。當然也可以在客戶端的瀏覽器測試,只不過需要安裝證書。
46 [root@yinzhengjie ~]#

9.客戶端安裝證書 [root@yinzhengjie CA]# sz cacert.pem -----將證書下載到windows中並將後綴改為crt雙擊即可安裝 技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

技術分享

還有一種方式也可以繼續訪問: 技術分享

技術分享

技術分享

10.擴展知識:快速創建證書   我們可以在/etc/pki/tls/certs這目錄下執行make命令來創建證書,所有的make內容執行時都需要先看該目錄下的Makefile文件。 常用後綴結尾的代表的含義:   pem:測試證書(包含了公鑰私鑰證書簽名都有了,一般用於內部測試,實際生產環境中千萬別這麽玩。)   key:私鑰   csr:證書簽署請求   crt:直接創建一個證書 案例:創建一個私鑰文件(需要輸入密碼)
 1 [root@yinzhengjie certs]# pwd
 2 /etc/pki/tls/certs
 3 [root@yinzhengjie certs]# make yinzhengjie.key
 4 umask 77 ;  5         /usr/bin/openssl genrsa -aes128 2048 > yinzhengjie.key
 6 Generating RSA private key, 2048 bit long modulus
 7 ........................+++
 8 .......................................................................................+++
 9 e is 65537 (0x10001)
10 Enter pass phrase:                ------>要求你輸入密碼,這裏是強制你輸入密碼,不能為空!
11 Verifying - Enter pass phrase:        ------>要求你重復上次輸入的密碼
12 [root@yinzhengjie certs]# 
13 [root@yinzhengjie certs]# ll
14 total 1772
15 -rw-r--r--. 1 root root  786601 Jul 14  2014 ca-bundle.crt
16 -rw-r--r--. 1 root root 1005005 Jul 14  2014 ca-bundle.trust.crt
17 -rwxr-xr-x. 1 root root     610 Oct 15  2014 make-dummy-cert
18 -rw-r--r--. 1 root root    2242 Oct 15  2014 Makefile
19 -rwxr-xr-x. 1 root root     829 Oct 15  2014 renew-dummy-cert
20 -rw-------. 1 root root    1766 Oct 22 07:02 yinzhengjie.key
21 [root@yinzhengjie certs]# 
  案例:創建測試證書(可以自動幫我們生成一個測試證書,裏面既包含了公鑰又包含了私鑰,雖然用起來很方便,但是你將私鑰和公鑰都公開了也就沒有太大意義了,一般用戶內部測試使用。)
 1 [root@yinzhengjie certs]# make yinzhengjie.pem
 2 umask 77 ;  3         PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ;  4         PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ;  5         /usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ;  6         cat $PEM1 >  yinzhengjie.pem ;  7         echo ""    >> yinzhengjie.pem ;  8         cat $PEM2 >> yinzhengjie.pem ;  9         rm -f $PEM1 $PEM2
10 Generating a 2048 bit RSA private key
11 ..+++
12 ......................................................................+++
13 writing new private key to /tmp/openssl.Ra7W2f
14 -----
15 You are about to be asked to enter information that will be incorporated
16 into your certificate request.
17 What you are about to enter is what is called a Distinguished Name or a DN.
18 There are quite a few fields but you can leave some blank
19 For some fields there will be a default value,
20 If you enter ., the field will be left blank.
21 -----
22 Country Name (2 letter code) [XX]:            ------->一路回車即可,我們這裏只是測試。
23 State or Province Name (full name) []:
24 Locality Name (eg, city) [Default City]:
25 Organization Name (eg, company) [Default Company Ltd]:
26 Organizational Unit Name (eg, section) []:
27 Common Name (eg, your name or your servers hostname) []:
28 Email Address []:
29 You have new mail in /var/spool/mail/root
30 [root@yinzhengjie certs]# 

三.服務器status頁面   一般來講,無論是Nginx,haproxy還是httpd他們都通常自己提供內生的status信息,且此信息可以通過web頁面預以顯示。我們只需要開啟這個功能即可。這個網頁就是記錄著服務器的詳細信息,建議不要讓所有人訪問,因為它不僅僅記錄著你的web服務器的搭建時間,支持的模塊,重啟服務的時間等等,所以這個信息最好要配置權限。  1>.說起配置權限,我們知道配置文件系統路徑訪問屬性可以選擇兩種容器:   <Directory [~]"">   </Directory>   或   <File [~]"">   </File>  2>.而說起配置URL訪問屬性時也可以選擇兩種容器   <Location [~]"">   </Location>   或   <LocationMatch "">   </LocationMatch>   如果要配置其屬性的URL能映射到某具體文件系統路徑,建議說用<Directory></Directorry>容器。在Apache內部裏面有很多處理器。所謂處理器就是當文件被調用時,Apache內部表現形式;一般來講,每一種文件類型都有其隱式處理器(比如客戶端請求web頁面,web服務器會自動將網頁返回給客戶端,這個動作都是依賴處理器來操作的。)一般我們都不需要明確指定處理器的(但某些特殊文件除外,比如服務器的status頁面信息就得明確指定處理器來處理的),支持處理status頁面信息的處理器需要status_module這個模塊的支持。如果我們想要顯式的定義使用的處理器就得用到SetHandler指令,索性是的是在httpd的配置文件就有相關的例子。我們不需要去刻意記住它。
 1 具體的配置參數可參考:
 2 <Location /server-status>
 3     SetHandler server-status
 4     AuthType Basic
 5     AuthName "Sever Status"
 6     AuthUserFile /etc/httpd/conf/.ApachePassword
 7     Require valid-user
 8     Order deny,allow
 9     Allow from all
10 </Location>

客戶端驗證如下: 技術分享

技術分享

https和server-status配置案例