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             = 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颁发自己的证书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

 

第五步:颁发申请 
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 谷歌浏览器 环境中操作。

 

  

相关内容