史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2007-07-19, 04:25 PM   #1
Admin1
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設 以數位憑證驗證客戶端的身份

我們除了可以使用Server端的數位憑證來進行SSL安全加密通訊以外,也可以使用Client端的數位憑證來驗證Client端的身份,也就是說Client端必需要有我們所認可的憑證才可以存取Web Server上的資料。

實作步驟:
  1. 建立自己專屬的CA(Certificate Authority)
  2. 建立與簽署不受passphrase保護的Server端數位憑證 
  3. 設定apache
  4. 建立與簽署client端數位憑證並將其轉換為pkcs12格式
  5. 在client端的瀏覽器中將,CA本身的數位憑證匯入至『憑證機構(Root CA)』中
  6. 在client端的瀏覽器中匯入『Client端數位憑證』
  7. 以apache的URL Rewrite強迫客戶端透過SSL瀏覽特定網頁



一、建立自己專屬的CA(Certificate Authority)
1.刪除原有的CA
引用:
rm -rf /usr/share/ssl/misc/demoCA

2.修改 /usr/share/ssl/misc/CA 這支Script
<將CA本身的數位憑證使用年限設定為10年>
引用:
找到:DAYS="-days 365"
改成:DAYS="-days 3650"
<將加密的bit數調整為2048>
引用:
找到:$REQ -new (在 "Making CA certificate" 附近)
改成:$REQ -newkey rsa:2048
3.建立CA
引用:
cd /usr/share/ssl/misc
./CA -newca
依照指示輸入相關資訊與passphrase即可,產生出來的 /usr/share/ssl/misc/demoCA即為新的CA。
/usr/share/ssl/misc/demoCA/cacert.pem:CA的數位憑證
/usr/share/ssl/misc/demoCA/private/cakey.pem:CA的private key

4.變更檔案存取權限
引用:
chmod -R go= /usr/share/ssl/misc/demoCA


二.建立與簽署不受passphrase保護的Server端數位憑證
若是使用 /usr/share/ssl/misc/CA這支Script來建立數位憑證,預設建立出來的憑證是會受到passphrase保護的,若是將有密碼保護的憑證用在apache上,則每次重新啟動apache時系統都會要求你輸入密碼,否則apache會啟動失敗。因此實務上,還是採用不受密碼保護的憑證較多。

1.建立apache專用的private key
引用:
cd /usr/share/ssl/misc
openssl genrsa -out apache.key 2048
chmod 400 apache.key
2.建立apache的CSR(Certificate-Signing Request)
引用:
openssl req -new -key apache.key -out apache.csr
chmod 400 apache.csr
注意!在輸入相關資料的時候,Common Name必須要輸入apache server的FQDN,否則客戶端使用瀏覽器連線的時候會出現錯誤訊息。

3.以自己的CA來簽署apache的CSR
先確定是否在 /usr/share/ssl/misc目錄中。

引用:
mv apache.csr newreq.pem
./CA -signreq (會產生newcert.pem)
mv newcert.pem apache.crt
chmod 400 apache.crt
rm -f newreq.pem
可以使用以下的指令觀察的憑證內容:
引用:
openssl x509 -text -noout -in apache.crt


三.設定apache
首先要將下列東西複製到指定的位置:
CA的數位憑證複製到 /etc/httpd/conf/ssl.crt/demoCA.crt
apache的數位憑證複製到 /etc/httpd/conf/ssl.crt/apache.crt
apache的private key複製到 /etc/httpd/conf/ssl.key/apache.key

<實際修改設定檔>
vi /etc/httpd/conf.d/ssl.conf
引用:
SSLEngine On
SSLProtocol ALL -SSLv2 (SSLv2是有缺陷的,因此關閉對於SSLv2的支援)
SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW (關閉加密強度較低的Cipher)
SSLCACertificateFile /etc/httpd/conf/ssl.crt/demoCA.crt
SSLCertificateFile /etc/httpd/conf/ssl.crt/apache.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/apache.key
SSLVerifyClient require
SSLVerifyDepth 1


四.建立與簽署client端數位憑證並將其轉換為pkcs12格式
直接使用 /usr/share/ssl/misc/CA這支Script來建立,但要記得先將目前工作目錄切至 /usr/share/ssl/misc。

<建立憑證>
引用:
cd /usr/share/ssl/misc
./CA -newreq (會產生newreq.pem,此為private key + CSR)
./CA -signreq (會產生newcert.pem,此為數位憑證)
chmod 400 newreq.pem newcert.pem

<將憑證轉換為pkcs12格式>
引用:
openssl pkcs12 -export -name "Client Certificate" -in newcert.pem -inkey newreq.pem -out newcert.p12

chmod 400 newcert.p12
mv newcert.p12 client.p12 <== 此即為配發給客戶端使用的憑證


五.在client端的瀏覽器中將,CA本身的數位憑證匯入至『憑證機構(Root CA)』中
以 IE 為例:
工具->網際網路選項->內容->憑證->信任的根憑證授權->匯入 client.p12


六、在client端的瀏覽器中匯入『Client端數位憑證』
以 IE 為例:
工具->網際網路選項->內容->憑證->個人->匯入 client.p12


七、以apache的URL Rewrite強迫客戶端透過SSL瀏覽特定網頁
例如限制 /var/www/html/secure 這個資料夾一定要使用SSL瀏覽:
PHP 語法:
RewriteEngine On
RewriteCond 
%{HTTPS} !=on
RewriteRule 
^/secure(.*) https://%{SERVER_NAME}/secure$1 [R,L] 
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5818 次
有 3 位會員向 Admin1 送花:
alife0504 (2007-09-19),amos50 (2009-06-02),Tamadbee (2007-07-30)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 11:13 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2018, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1