為了模擬真實(shí)環(huán)境,這里使用的兩臺服務(wù)器做測試,也可以在一臺服務(wù)器操作下面的步驟。
私有CA認(rèn)證機(jī)構(gòu)(192.168.100.200)
1、cd /etc/pki/CA
2、(umask 077; openssl genrsa -out private/cakey.pem) #生成一對密鑰
3、openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3667 #生成自簽證書,然后填寫相關(guān)信息,后面web服務(wù)器生成證書頒發(fā)請求時(shí)候填寫的信息要一致,由于前面5項(xiàng)我已經(jīng)在/etc/pki/tls/openssl.cnf 定義好了默認(rèn)信息,這里都默認(rèn)。
4、vim /etc/pki/tls/openssl.cnf #編輯此文件
找到[ CA_default ]
將下面的 dir = ../../CA
改成絕對路徑: dir = /etc/pki/CA
5、mkdir certs crl newcerts
touch index.txt
echo 00 > serial #設(shè)置序列號
web服務(wù)器配置(192.168.100.100)
1、yum install -y httpd #安裝apache
2、yum install -y mod_ssl #安裝ssl模塊
3、vim /etc/httpd/conf/httpd.conf
找到DocumentRoot "/var/www/html" 前面加上#注釋,即取消中心主機(jī),開啟虛擬主機(jī)
4、vim /etc/httpd/conf.d/amd5.cn.conf添加下面內(nèi)容
<VirtualHost 192.168.100.100:80>
ServerAdmin admin@amd5.cn
DocumentRoot /www/html/amd5.cn/web
ServerName amd5.cn
Serveralias www.zhongjima.net
ErrorLog /www/html/amd5.cn/logs/error_log
CustomLog /www/html/amd5.cn/logs/access_log common
</VirtualHost>
5、mkdir -pv /www/html/amd5.cn/{web,logs}
6、mkdir /etc/httpd/ssl
7、cd /etc/httpd/ssl
8、(umask 077; openssl genrsa 1024 >amd5.key) #創(chuàng)建一對1024位長度的密鑰
9、openssl req -new -key amd5.key -out amd5.csr #生成證書頒發(fā)請求(然后將請求傳送給CA服務(wù)器),此處填寫的信息要和前面CA生成自簽證書時(shí)候填寫的信息要一致,這里我沒有修改配置文件,所以手動填寫。
10、 scp amd5.csr root@192.168.100.200:/root/ #復(fù)制請求到CA認(rèn)證服務(wù)器
遠(yuǎn)程到CA認(rèn)證服務(wù)器192.168.100.200然后執(zhí)行下面命令
openssl ca -in /root/amd5.csr -out /root/amd5.crt -days 3650 #CA端 簽署此證書10年的有效期
錯誤1:
wrong number of fields on line 1 (looking for field 6, got 1, '' left)
原因是你的index.txt文件不為空,改為空文件即可。
錯誤2:
error while loading serial number
3078239980:error:0D066096:asn1 encoding routines:a2i_ASN1_INTEGER:short line:f_int.c:215:
原因:是因?yàn)閟erial文件中沒有賦初值,即沒有執(zhí)行echo 00 > serial
11、scp root@192.168.100.200:/root/amd5.crt ./etc/httpd/ssl/ #下載簽署以后的證書到web服務(wù)器/etc/httpd/ssl/目錄
12、cd /etc/httpd/conf.d
cp ssl.conf ssl.conf.bak #備份ssl.conf文件
vim ssl.conf #編輯此文件
1.找到<VirtualHost _default_:443>改成<VirtualHost 192.168.100.100:443>
2.找到:
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
在下面添加兩行
ServerName www.zhongjima.net
DocumentRoot "/www/html/amd5.cn/web/"
3.找到SSLCertificateFile /etc/pki/tls/certs/localhost.crt
改成SSLCertificateFile /etc/httpd/ssl/amd5.crt
4.找到SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
改成SSLCertificateKeyFile /etc/httpd/ssl/amd5.key
13、service httpd restart
查看443端口是否被監(jiān)聽lsof -i:443
14、vim /etc/sysconfig/iptables添加下面一行,允許443端口外部訪問
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
/etc/init.d/iptables restart #重啟防火墻讓修改生效
15、修改本地host文件,C:\Windows\System32\drivers\etc添加一行:
192.168.100.100 www.zhongjima.net
16、本地瀏覽器輸入http://www.zhongjima.net 訪問測試。