network

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  28 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks
http://www.7880.com/Info/Article-62f7b180.html 
先安装openssl

 rpm -qa openssl

rpm –e –-nodeps openssl

tar xvzf  openssl***.tar.gz

cd openssl***

./config --prefix=/usr/local/openssl shared


make

make test

make install


安装apache

tar xvzf apache***.tar.gz

cd apache***

./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --enable-ssl  with-ssl=/usr/local/openssl

make

make install

安装openssl后,在openssl下有一个CA.sh文件,就是利用此文件来签证,
来签三张证书,然后利用这三张证书来布SSL服务器。

1、在/usr/local/apache/conf下,建立一个ssl.crt目录,将CA.sh文件copy至/usr/local/apache/conf/ssl.crt/目录
代码:
[root@win ssl]# cp /usr/local/openssl/ssl/misc/CA.sh /usr/local/apache/conf/ssl.crt/CA.sh


2、运行CA.sh -newca,他会找你要CA需要的一个CA自己的私有密钥密码文件。如果没有这个文件?按回车会自动创建,输入密码来保护这个密码文件。之后会要你的一个公司信息来做CA.crt文件。最后在当前目录下多了一个./demoCA这样的目录../demoCA/private/cakey.pem就是CA的key文件啦,./demoCA/cacert.pem就是CA的crt文件了
代码:
[root@win ssl.crt]# ./CA.sh -newca


要求输入如下信息:
引用:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM

这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem,现在就可以cacert.pem来给签证了

3、签署服务器证书
生成服务器私钥:
代码:
[root@win ssl.crt]# openssl genrsa -des3 -out server.key 1024

生成服务器证书请求
代码:
[root@win ssl.crt]# openssl req -new -key server.key -out server.csr

会要求输入信息
代码:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:FUJIAN
Locality Name (eg, city) [Newbury]:FUZHOU
Organization Name (eg, company) [My Company Ltd]:FJJM
Organizational Unit Name (eg, section) []:FD
Common Name (eg, your name or your server's hostname) []:WIN
Email Address []:WIN@WIN.COM
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:WIN
An optional company name []:WING


最后把server.crt文件mv成newreq.pem,然后用CA.sh来签证就可以了
代码:
[root@win ssl.crt]# mv server.csr newreq.pem
[root@win ssl.crt]# ./CA.sh -sign
这样就生成了server的证书newcert.pem
把newcert.pem改名成server.crt
代码:
[root@win ssl.crt]# mv newcert.pem server.crt



4、处理客户端:
生成客户私钥:
代码:
[root@win ssl.crt]# openssl genrsa -des3 -out client.key 1024

请求
代码:
[root@win ssl.crt]# openssl req -new -key client.key -out client.csr

签证:
代码:
[root@win ssl.crt]# openssl ca -in client.csr -out client.crt

把证书格式转换成pkcs12格式
代码:
[root@win ssl.crt]# openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx


5、这时就有了三张证书和三个私钥,一个是demoCA下的根证书,ssl.crt下的服务器证书和客户证书。及demoCA/private下的根key,ssl.crt下的服务器key和客户key,在conf下的ssl.conf下指定证书的位置和服务器key的位置.

我是在conf下建立一个ssl.crt目录,并将所有的key和证书放到这里
代码:
#cp demoCA/cacert.pem cacert.pem

同时复制一份证书,更名为ca.crt
代码:
#cp cacert.pem ca.crt




、编辑ssl.conf
代码:
#cd /usr/local/apache/conf

编辑ssl.conf
代码:
指定服务器证书位置
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服务器证书key位置
SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key
证书目录
SSLCACertificatePath /usr/local/apache/conf/ssl.crt
根证书位置
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/cacert.pem
开启客户端SSL请求
SSLVerifyClient require
SSLVerifyDepth  1


启动ssl
代码:
/usr/local/apache/bin/apachectl startssl
会要求输入server.key的密码
启动,这样一个默认的SSL服务器及http服务器就启动了,

安装和使用证书
把刚才生成的证书:根证书ca.crt和客户证书client.pfx下到客户端,并安装,
ca.crt安装到信任的机构,client.pfx直接在windows安装或安装到个人证书位置,然后用IP访问HTTP和https服务器。



posted on 2008-06-06 00:50 network 阅读(294) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。