三、部署證書
如果使用雙向認證,就會有三個私鑰和三個證書。分别是 ca.key, ca.crt, server.key, server.crt, client.key, client.crt ,以及給浏覽器的 client.pfx 。
如果使用有 CA 證書的單向認證,證書和私鑰就是 ca.key, ca.crt, server.key, server.crt 。
如果使用無 CA 證書的單向認證,證書和私鑰就是 server.key, server.crt 。
1、修改httpd.conf檔案
**RPM安裝的情況下,不需要修改httpd.conf檔案,因為在httpd.conf檔案中預設添加了 include conf.d/*.conf。而在rpm安裝時,conf.d檔案夾中已含有ssl.conf檔案。是以隻要修改ssl.conf檔案就可以了。**
**RPM安裝的Apahce時,可能一開始沒有mod-ssl,需要安裝。方法為:yum install mod_ssl 或者用rpm包安裝,需要mod_ssl arp_util distcache httpd postgresql-libs等伊來關系。**
需要修改時可在httpd.conf檔案中加上include conf.d/ssl.conf(用于ssl子產品使用的conf檔案的路徑即可)。
2、修改ssl.conf檔案
[root@localhost conf.d]#cp -p ssl.conf ssl.conf.bk
[root@localhost conf.d]#vi ssl.conf
---------------------------------------
Listen 443 //可以改成其他端口
SSLPassPhraseDialog builtin //每次重新開機Apache時需要輸入密碼
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLMutex default
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.crt/server.key
SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca.crt //雙向時使用
SSLVerifyClient require //雙向時使用,強制客戶必須持有SSL證書請求
SSLVerifyDepth 10 //雙向時使用
</VirtualHost>
可以按照如下方式重新導入KEY檔案,則可以不用每次重新開機Apache都需要輸入KEY檔案密碼
[root@localhost ssl.crt]#openssl rsa -in server.key -out server2.key
[root@localhost ssl.crt]#mv server.key server.key.originalkey
[root@localhost ssl.crt]#mv server2.key server.key
3、重新開機Apache
[root@localhost ssl.crt]#service httpd restart
如果端口号為非預設的443(假如為446),則可能會會出現如下錯誤:
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:446
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:446
no listening sockets available, shutting down
Unable to open logs
[FAILED]
則可以使用semanagement工具來添加Apache的偵聽端口
[root@localhost ssl.crt]#semanage port -l|grep http
[root@localhost ssl.crt]#semanage port -a -t http_port_t -p tcp 446
再次重新開機Apache應該就可以使用了。
4、開啟防火牆端口
[root@localhost conf]#cd /etc/sysconfig/
[root@localhost conf]#vi iptables
-------------------------------------
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 446 -j ACCEPT
[root@localhost sysconfig]# /etc/init.d/iptables restart
配置完之後,如果用戶端沒有安裝證書,則不能用446端口通路伺服器了。
5、用戶端安裝證書
IE為例:
【工具】--》【internet選項】--》【内容】--》【證書】--》【受信任的根證書頒發機構】--》【導入】,導入ca.crt。
(雙向認證時)【工具】--》【internet選項】--》【内容】--》【證書】--》【個人】--》【導入】,導入client.p12,需要輸入該檔案的密碼
可使用https通路網站
*如果使用IE通路時有問題而用其他浏覽器比如火狐,谷歌時沒有問題,請對IE做以下設定:
【工具】--》【internet選項】--》【進階】--》安全
ssl和tls使用最低版本。比如SSL 勾選【使用SSL 2.0】,其他的ssl版本不勾選
tls勾選【使用TLS 1.0】,其他版本的tsl不勾選
*其他浏覽器操作類似,有問題可以百度搜尋。
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1870099,如需轉載請自行聯系原作者