天天看點

Linux下導入SSL證書(配置用于Apache)

三、部署證書

如果使用雙向認證,就會有三個私鑰和三個證書。分别是 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,如需轉載請自行聯系原作者

繼續閱讀