当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 使用自建的证书服务器安装SSL(apache)转贴

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 174 ::
收藏到网摘: n/a


本文章在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 []:[email protected] 这样就建好了一个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 []:[email protected] 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