實驗環境:
服務器:CentOS 6.5
客戶端: Windows XP
一:建立機構證書
1:編輯openssl文件
# vim /etc/pki/tls/openssl.cnf
將
dir=../../CA
改爲
dir=/etc/pki/CA
將
ountryName = match stateOrProvinceName = match organizationName = match
改爲
ountryName = optional stateOrProvinceName = optional organizationName = optional
作用是不用匹配國家、省份、城市照樣能使用證書服務器,否則申請證書必須跟CA證書在同一個國家、身份、城市,才能申請證書。
2.創建配置文件所需的目錄和文件。
#cd /etc/pki/CA
#mkdir certs crl newcerts
#touch index.txt
#echo "01" < serial
3.CA服務器機構自簽證書
生成私鑰
# openssl genrsa 1024 > private/cakey.pem
生成證書
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
二.簽發服務器、客戶端證書
服務器和客戶端證書統一放到 /CA
服務器證書:
# mkdir /CA
# cd /CA
# openssl genrsa 1024 > server.key #證書私鑰文件
# openssl req -new -key server.key -out server.csr #證書申請文件
# openssl ca -in server.csr -out server.crt #生成證書文件
客戶端證書:
# openssl genrsa 1024 > client.key #證書私鑰文件
# openssl req -new -key client.key -out client.csr #證書申請文件
# openssl ca -in client.csr -out client.crt #生成證書文件
將客戶端證書轉換成客戶端可識別的證書格式,轉換後會提示鍵入私鑰密碼,客戶端導入此證書時會用到
# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx
三:apache的ssl設置
安裝apache的ssl模版文件
# yum install mod_ssl
編輯ssl的模版文件
# vim /etc/httpd/conf.d/ssl.conf
https頁面的主目錄直接使用默認目錄
DocumentRoot "/var/www/html" ServerName www.51cto.com:443
將
SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
改成
SSLCertificateFile /CA/server.crt SSLCertificateKeyFile /CA/server.key SSLCACertificateFile /etc/pki/CA/cacert.pem
並開啓
SSLVerifyClient require SSLVerifyDepth 10
在目錄下創建一個主頁文件
# echo "this is ssl page" > /var/www/html/index.html
#service httpd restart
四:將客戶端證書拷到客戶端中並導入證書
這裏填寫導出客戶端證書時設置的私鑰密碼
測試
先改一下hosts的解析文件