apache+ssl+ca,apachessl
第一步:搭建apache伺服器,這在上篇部落格中已經完成 http://www.cnblogs.com/sangmu/p/6422238.html第二步:安裝ssl
yum install mod_ssl -y iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT service iptables save
1 vim /etc/httpd/conf.d/ssl.conf 2 3 Listen 443 //監聽的連接埠號碼 4 <VirtualHost _default_:443> // 配置虛擬機器主機,如果僅僅只是對一個網站加密,則將default改成網域名稱 5 DocumentRoot "/var/www/html" //網頁檔案所在目錄 6 ServerName www.example.com:443 // 加密網站網域名稱 7 SSLEngine on // 開啟ssl 8 SSLCertificateFile /etc/httpd/conf/ssl.crt/test.crt //www伺服器憑證位置 9 SSLCertificateKeyFile /etc/httpd/conf/ssl.key/test.key //www伺服器秘鑰位置10 SSLCACertificateFile /etc/pki/CA/ca.crt //CA伺服器憑證位置11 SSLVerifyClient require //是否開啟雙向認證,開啟後 要求瀏覽器用戶端,必須有CA頒發的認證12 SSLVerifyDepth 10 //雙向驗證層數
至此,ssl安裝完成。 第三步:安裝CA①安裝ca
yum install openssl -y vim /etc/pki/tls/openssl.cnf
1 dir = /etc/pki/CA //目錄 2 certs = $dir/certs // 頒發認證位置 3 crl_dir = $dir/crl //吊銷認證位置 4 database = $dir/index.txt //索引表 5 new_certs_dir = $dir/newcerts //新認證位置 6 certificate = $dir/ca.crt //自己認證位置 7 serial = $dir/serial //認證序號 8 crlnumber = $dir/crlnumber //憑證撤銷清單 9 private_key = $dir/private/ca.key //秘鑰位置10 countryName = optional11 stateOrProvinceName = optional12 organizationName = optional13 organizationalUnitName = optional
②建立目錄和檔案
cd /etc/pki/CAmkdir certs newcerts crltouch index.txt serial echo 01 > serial //匯入初始序號
③產生ca秘鑰
umask 077;openssl genrsa -out private/ca.key 2048
註: umask 077 //設定組建檔案的許可權 genrsa //產生私密金鑰 -out //私密金鑰存放路徑 2048 //2048位元組計算④給ca頒發自己的認證ca.crt
1 openssl req -x509 -new -key private/ca.key -out ca.crt -days 3652 Country Name (2 letter code) [GB]:CN //國家3 State or Province Name (full name) [Berkshire]:JS //省份4 Locality Name (eg, city) [Newbury]:NT //地區5 Organization Name (eg, company) [My Company Ltd]:NTZD //組織名6 Organizational Unit Name (eg, section) []:DZX //部門7 Common Name (eg, your name or your server's hostname) []:test4.sangmu.com //網域名稱8 Email Address []:root //郵箱
第四步:apache 申請認證和秘鑰①建立目錄和檔案
cd /etc/httpd/confmkdir ssl.key ssl.crt
②產生秘鑰
umask 007;openssl genrsa -out ssl.key/test.key 2048
③填寫認證申請請求
umask 007;openssl genrsa -out ssl.key/test.key 2048
第五步:頒發申請
openssl ca -in test.csr -out test.crt -days 100
重啟服務,這個時候,在用戶端可以進行加密訪問了。
如果開啟雙向認證,則需要給瀏覽器客服端頒發認證①產生client秘鑰client.key
umask 077;openssl genrsa -out client.key 2048
②填寫認證產生請求client.csr
openssl req -new -key client.key -out client.csr
③頒發client認證 client.crt
openssl ca -in client.csr -out client.crt -days 100
④client認證格式轉換
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
⑤在client端安裝ca根憑證ca.crt和clien認證client.p12
至此就完成了雙向驗證 註:本次實驗是在centos5.5+Windows 7 Google瀏覽器 環境中操作。