首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 操作系统 → Linux → 文章内容

使用自建的证书服务器安装SSL(apache)转贴

作者:佚名  来源:网上收集  发布时间:2006-5-22 18:20:47

本文章在LINUX9+apache2.0.52,openssl0.97上实验通证本文的目的是为了交流,如有出错的地方,请指教
使用自建的证书服务器安装SSL(apache)笔记 本文章在LINUX9+apache2.0.52,openssl0.97上实验通证本文的目的是为了交流,如有出错的地方,请指教转载请注明出处,并保持文章的完整性现在开始安装首先在安装之前要明白一些基本概念1、SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如Verisign 或 Thawte签署证书。2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。因此:在此环境中,至少必须有三个证书:即根证书,服务器证书,客户端证书在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。3、签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。用openssl语法来生成证书,有很多条件限定,如目录,key的位置等,比较麻烦,我实验了好几天,最后放弃了。有兴趣的可以参考一下openssl手册。步骤一:安装openssl和apache1、到www.openssl.org下载openssl-0.9.7e.tar.gz(目前最新版)2、卸载掉老的opensll库 代码:#rpm –e –-nodeps openssl 3、解压:代码:#tar xzvf openssl-0.9.7e.tar.gz4、进入openssl目录,并安装,用--prefix指定openssl安装目录代码:#cd openssl-0.9.7e#./config --prefix=/usr/local/openssl#make#make test#make install 5、安装apache至http://www.apache.org/dist下载apach...d-2.0.52.tar.gz解压后进入apache目录,根据需要安装需要的模块,我这里装了ssl,rewrite,动态模式安装代码:#tar zxvf httpd-2.0.52.tar.gz#cd httpd-2.0.52#./configure --prefix=PREFIX --enable-ssl --enable-rewrite --enable-so --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.sh2、运行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]:CNState or Province Name (full name) [Berkshire]:FUJIANLocality Name (eg, city) [Newbury]:FUZHOUOrganization Name (eg, company) [My Company Ltd]:FJJMOrganizational Unit Name (eg, section) []:FDCommon Name (eg, your name or your server's hostname) []:WINEmail 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]:CNState or Province Name (full name) [Berkshire]:FUJIANLocality Name (eg, city) [Newbury]:FUZHOUOrganization Name (eg, company) [My Company Ltd]:FJJMOrganizational Unit Name (eg, section) []:FDCommon Name (eg, your name or your server's hostname) []:WINEmail Address []:WIN@WIN.COMPlease enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:WINAn 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.crt4、处理客户端:生成客户私钥:代码:[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.pfx5、这时就有了三张证书和三个私钥,一个是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 requireSSLVerifyDepth 1启动ssl代码:/usr/local/apache/bin/apachectl startssl会要求输入server.key的密码启动,这样一个默认的SSL服务器及http服务器就启动了,步骤四、安装和使用证书把刚才生成的证书:根证书ca.crt和客户证书client.pfx下到客户端,并安装,ca.crt安装到信任的机构,client.pfx直接在windows安装或安装到个人证书位置,然后用IP访问HTTP和https服务器。现在可以使用证书访问了!可以注释掉80端口或使用rewrite转发

[] [返回上一页] [打 印]
  • 上一篇文章:windows98訪問2000和xp的問題
  • 下一篇文章:如何知道某个硬盘是fixed型,还是removable型。

  • 相关文章:
  • 使用自建的证书服务器安装SSL(apache)转贴
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号