構建HTTPS安全網站

1.構建HTTPS安全網站
問題
本案例基於上一章的CA服務器,要求爲Web服務器提供加密通信支持,主要完成以下任務操作:
1)使用openssl爲網站服務器創建CSR證書籤發申請
2)將CSR申請提交給CA服務器簽署,下載簽發好的數字證書文件
3)配置實現強制跳轉的HTTPS網站服務
方案
採用兩臺RHEL6虛擬機,其中svr5作爲CA服務器,而www作爲測試用的網站服務器。另外準備一臺pc120作爲訪問網站的Windows測試機,如圖-1所示。
在這裏插入圖片描述
圖-1
步驟
實現此案例需要按照如下步驟進行。
步驟一:使用openssl爲網站服務器創建CSR證書籤發申請
1) 在www服務器上,先使用openssl創建私鑰文件
由於此例中的私鑰主要用於Web自動加密通信,爲了方便起見,可以不設置私鑰口令,否則在啓動httpd服務時需要驗證私鑰口令。
[root@www ~]# cd /etc/pki/tls/private/ pc
[root@www private]# openssl genrsa 2048 > www.key //建立無口令保護的私鑰文件
Generating RSA private key, 2048 bit long modulus
…+++
…+++
e is 65537 (0x10001)
[root@www private]# chmod 600 www.key
2)基於新建的密鑰信息創建CSR證書籤發請求
注意根據提示設置的國家、省、市、組織信息要與CA根證書的設置保持一致。
[root@www private]# \

openssl req -new -key www.key > ~/www.csr //建立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]:Tarena Technology Ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:www.tarena.com
Email Address []:[email protected]

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@www private]#
步驟二:將CSR申請提交給CA服務器簽署,下載簽發好的數字證書文件
1) 在CA服務器svr5上,獲得www服務器的CSR證書籤發請求
可以採用SCP等方式拷貝過來,正式簽發之前,可以先確認證書請求的信息內容。
[root@svr5 ~]# scp 192.168.4.120:/root/www.csr ./
[email protected]’s password:
www.csr 100% 1058 1.0KB/s 00:00
[root@svr5 ~]# openssl req -in www.csr -noout –text //查看證書請求
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=CN, ST=Beijing, L=Beijing, O=Tarena Technology Ltd, CN=www.tarena.com/[email protected]
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
… …
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
… …
2)在CA服務器svr5上,簽署併發布證書文件
正式簽署www服務器的CSR請求,生成證書文件。然後將證書文件發放給www服務器,此例中仍通過httpd服務提供下載。
[root@svr5 ~]# cd /etc/pki/CA/certs/
[root@svr5 certs]# openssl ca -in ~/www.csr > www.crt //簽署證書
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/my-ca.key: //驗證私鑰口令
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 6 (0x6)
Validity
Not Before: Aug 19 06:48:14 2013 GMT
Not After : Aug 19 06:48:14 2014 GMT
Subject:
countryName = CN
stateOrProvinceName = Beijing
organizationName = Tarena Technology Ltd
commonName = www.tarena.com
emailAddress = [email protected]
… …
Certificate is to be certified until Aug 19 06:48:14 2014 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@svr5 certs]# cp www.crt /var/www/html/certs/ //複製到Web下載目錄
3)在www服務器上,下載CA服務器簽發好的證書文件
[root@www private]# cd /etc/pki/tls/certs/
[root@www certs]# wget http://192.168.4.5/certs/www.crt
… …
2015-05-17 14:55:59 (270 MB/s) - 已保存 “www.crt” [4631/4631])
步驟三:配置實現強制跳轉的HTTPS網站服務
1)在www服務器上,確認準備的私鑰、證書文件位置
[root@www ~]# ls -lh /etc/pki/tls/private/www.key
-rw-------. 1 root root 1.7K 8月 19 14:13 /etc/pki/tls/private/www.key
[root@www ~]# ls -lh /etc/pki/tls/certs/www.crt
-rw-r–r--. 1 root root 4.6K 8月 19 14:51 /etc/pki/tls/certs/www.crt
2) 調整httpd服務配置,以便啓用SSL引擎
此例中以RHEL6自帶的httpd網站服務爲例,需要安裝mod_ssl模塊包。然後修改/etc/httpd/conf.d/ssl.conf文件,添加啓用SSL的設置,以及將http://訪問自動重定向(跳轉)爲https://訪問的設置。
[root@www ~]# yum -y install httpd mod_ssl
… …
[root@www ~]# vim /etc/httpd/conf.d/ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 443
… …

SSLEngine on
… …
SSLCertificateFile “/etc/pki/tls/certs/www.crt”
SSLCertificateKeyFile "/etc/pki/tls/private/www.key“

… …
RewriteEngine on //啓用地址重寫引擎
RewriteCond %{SERVER_PORT} !^443$ //重寫條件爲非443端口的訪問
RewriteRule (.) https://%{SERVER_NAME}/$1 [R] //將URL重寫爲https://開頭
[root@www ~]# vim /etc/httpd/conf/httpd.conf
… … //確認ssl.conf能夠被主配置所調用
Include conf.d/
.conf
[root@www ~]# service httpd restart
停止 httpd: [確定]
正在啓動 httpd: [確定]
[root@www ~]# netstat -anpt | grep httpd
tcp 0 0 :::80 ::? LISTEN 31645/httpd
tcp 0 0 :::443 ::? LISTEN 31645/httpd
3)訪問HTTPS站點進行測試
在測試機pc120上,可以從瀏覽器直接訪問https://www.tarena.com,或者訪問http://www.tarena.com自動跳轉爲https://www.tarena.com。首次訪問時會出現安全提示,單擊“確定”即可,如圖-2所示。
在這裏插入圖片描述
圖-2
另外,由於這個網站的證書是企業自建CA頒發的,而並不是由互聯網中合法、可信的CA機構所頒發,因此會出現關於證書問題的安全警報,如圖-3所示,單擊“是”即可。
在這裏插入圖片描述
圖-3
成功接收證書、信任證書以後,就可以看到網頁內容了;而且,從地址欄裏可以看到訪問的協議爲HTTPS,如圖-4所示,說明已經支持加密通信了。
在這裏插入圖片描述
圖-4

發佈了225 篇原創文章 · 獲贊 196 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章