第一步:搭建apache伺服器,這在上篇博客中已經完成 http://www.cnblogs.com/sangmu/p/6422238.html 第二步:安裝ssl yum install mod_ssl -y iptables -I INPUT 1 -p tcp --dport 443 -j AC ...
第一步:搭建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 = optional 11 stateOrProvinceName = optional 12 organizationName = optional 13 organizationalUnitName = optional②創建目錄和文件
cd /etc/pki/CA mkdir certs newcerts crl touch index.txt serial echo 01 > serial //導入初始序列號③生成ca秘鑰
umask 077;openssl genrsa -out private/ca.key 2048註: umask 077 //設置生成文件的許可權 genrsa //生成私鑰 -out //私鑰存放路徑 2048 //2048位元組計算 ④給ca伺服器生成證書申請請求
1 openssl req -new -key ca.key -out ca.csr
⑤給ca用伺服器的私鑰給證書伺服器頒發ca證書
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt註:也可直接給ca頒發自己的證書ca.crt
1 openssl req -x509 -new -key private/ca.key -out ca.crt -days 365 2 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/conf mkdir ssl.key ssl.crt②生成秘鑰
umask 007;openssl genrsa -out ssl.key/test.key 2048③填寫證書申請請求
umask 007;openssl genrsa -out ssl.key/test.key 2048第五步:頒發申請
1 openssl ca -in web.csr -cert ca.crt -keyfile -out web.crt重啟服務,這個時候,在客戶端可以進行加密訪問了。
補充:
1.如果linux ca伺服器給windows web 伺服器頒發證書,則需要將windows網頁證書申請文件導入到ca伺服器中,然後頒發
1 openssl pkcs12 -export -clcerts -in web.crt -inkey web.key -out web.p12
2.如果ca伺服器搭建在windows上,web伺服器搭建在linux 上,則需要linux 通過網頁申請證書,然後將證書文件進行格式轉化
1 openssl x509 -in cert.cer -inform der -outform pem -out web.crt
如果開啟雙向認證,則需要給瀏覽器客服端頒發證書 ①生成client秘鑰client.key
1 opensll genrsa -des3 -out client.key
②填寫證書生成請求client.csr
openssl req -new -key client.key -out client.csr③頒發client證書 client.crt
1 openssl ca -in client.csr -cert ca.crt -keyfile -out client.crt④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 谷歌瀏覽器 環境中操作。