分类: 保密安全性 2010-01-04 22:01 1011人阅读 评论(1) 收藏 举报
转载来自:http://hi.baidu.com/mx87/blog/item/32ca90fc715ffcfffd037f08.html
本文在LINUX AS3.0+apache2.0.x,openssl0.97 上实验通过
首先在安装之前要明白一些基本概念
1、SSL所使用的证书可以自己生成,也可以通过一个商业性CA(如Verisign 或 Thawte)签署证书。
2、证书的概念:首先要有一个根证书,然后用根证书来签发服务器证书和客户证书,一般理解:服务器证书和客户证书是平级关系。在SSL必须安装根证书和服务器证书来认证。 因此:在此环境中,至少必须有三个证书:根证书,服务器证书,客户端证书。
在生成证书之前,一般会有一个私钥,同时用私钥生成证书请求,再利用证书服务器的根证来签发证书。
3、签发证书的问题:我最近找了很多关于openssl的资料,基本上只生成了根证书和私钥及服务器证书请求,并没有真正的实现签证。我这里参考了一些资料,用openssl自带的一个CA.sh来签证书,而不是用MOD_ssl里的sign.sh来签。用openssl语法来生成证书,有很多条件限定,如目录,key的位置等,比较麻烦,我实验了好几天,最后放弃了。有兴趣的可以参考一下openssl 手册。
步骤一:安装openssl和apache
1、到www.openssl.org下载openssl-0.9.7e.tar.gz(目前最新版)
2、卸载掉老的opensll库(如果卸载了出错,说找不到某些*.so.x的文件就不要卸载)
命令:
#rpm –e –-nodeps openssl
3、解压:
命令:
#tar xzvf openssl-0.9.7e.tar.gz
4、进入openssl目录,并安装,用--prefix指定openssl安装目录
命令:
#cd openssl-0.9.7e
#./config --prefix="/usr/local/openssl"
#make
#make test
#make install
5、安装apache (如果安装系统的时候按需配置安装了apache也可以,我是这种方法)
至www.apache.org/dist下载apache最新版httpd-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/目录
命令:
#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文件
命令:
# ./CA.sh -newca
要求输入如下信息:
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:zhejiang
Locality Name (eg, city) [Newbury]:hangzhou
Organization Name (eg, company) [My Company Ltd]:xiongwei
Organizational Unit Name (eg, section) []:xw
Common Name (eg, your name or your server's hostname) []:ipman.cn
Email Address []:foolkaka@hotmail.com
当OpenSSL提示你“CommonName”时,确保您输入了服务器的FQDN("Fully Qualified Domain Name" ,即,当您为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。
这样就建好了一个CA服务器,有了一个根证书的私钥cakey.pem及一张根证书cacert.pem,现在就可以cacert.pem来给签证了
3、签署服务器证书
生成服务器私钥:
命令:
# openssl genrsa -des3 -out server.key 1024
生成服务器证书请求
命令:
# openssl req -new -key server.key -out server.csr
会要求输入信息
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:zhejiang
Locality Name (eg, city) [Newbury]:hangzhou
Organization Name (eg, company) [My Company Ltd]:xiongwei
Organizational Unit Name (eg, section) []:xw
Common Name (eg, your name or your server's hostname) []:ipman.cn
Email Address []:foolkaka@hotmail.com
当OpenSSL提示你“CommonName”时,确保您输入了服务器的FQDN("Fully Qualified Domain Name" ,即,当您为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:yourpassd
An optional company name []:xw
最后把server.crt文件mv成newreq.pem,然后用CA.sh来签证
命令:
# mv server.csr newreq.pem
# ./CA.sh -sign
这样就生成了server的证书newcert.pem
把newcert.pem改名成server.crt
命令:
# mv newcert.pem server.crt
4、处理客户端:
生成客户私钥:
命令:
# openssl genrsa -des3 -out client.key 1024
请求:
命令:
# openssl req -new -key client.key -out client.csr
签证:
命令:
# openssl ca -in client.csr -out client.crt
把证书格式转换成pkcs12格式
命令:
# 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的位置并将所有的key和证书放到这里
命令:
#cp demoCA/cacert.pem cacert.pem
同时复制一份证书,更名为ca.crt
命令:
#cp cacert.pem ca.crt
步骤三、编辑ssl.conf
命令:
#cd /usr/local/apache/conf
#vi 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服务器
分享到:
相关推荐
最新官方hyperledger-fabric-ca-linux-amd64-1.5.2.tar.gz证书文件,如果官网下载或下载失败,可以下载该文件
linux下搭建CA认证服务器并认证服务.docx
linux下搭建CA认证服务器并认证服务.doc
20.7. 生成发送给 CA 的证书请求 20.8. 创建自签的证书 20.9. 测试证书 20.10. 访问服务器 20.11. 其它资料 21. BIND 配置 21.1. 添加正向主区 21.2. 添加逆向主区 21.3. 添加从区块 22. 验证配置 22.1. 用户信息 ...
ngrinder的linux64位监控工具,用于监控目标服务器的性能表现
windows 下搭建CA linux下同理
Linux服务器常用命令(简化版) 11 1 1 Linux服务器常用命令(简化版)全文共74页,当前为第1页。Linux服务器常用命令(简化版)全文共74页,当前为第1页。Linux服务器常用命令(简化版) Linux服务器常用命令(简化版)全文共...
一: DNS服务器的设置 1. 编辑/etc/named.conf // generated by named-bootconf.pl options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you ...
搭建web服务器资料集合 包含:GD库,PHP,ZendOptimizer,phpMyAdmin等各种所需资料 版本如下:php-5.2.6.tar.gz,ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz,httpd-2.2.27.tar.gz,phpMyAdmin-3.5.4-all-...
你可以用它搭建自己的专属CA服务器,以方便为用户生成私钥、证书请求、颁发证书、吊销证书、证书续期、证书吊销列表等。它可以生成多种类型的证书,包括且不限于web服务器、代码、计算机、客户端、信任列表、时间戳...
第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig...
linux中小企业服务器配置方案(3) 第二章 DNS服务器 第一节 主DNS服务器 & 1.1 简介 域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每 一段中的数据通过客户,服务器模式在整个网络上均可...
基于Red-Hat-Enterprise-Linux-5-update-2-搭建SSL安全网站认证服务器CA以及SSL安全网站实验笔记全工具有疑
CentOS8 创建私有CA证书服务器,颁发证书,吊销证书
用openssl签发ssl x.509证书 建立根证书: 制做服务器端的证书并用ca签名: 生成crt格式 生成cer格式
Linux下安装OpenSSL 一、创建服务器证书、客户端证书以及CA 1、生成--服务器端--私钥和证书请求 2、生成--客户端-----私钥和证书请求 3、生成CA 4、通过CA签发证书 5、生成pem格式证书 6、生成pkcs12格式证书 二、...
从ACME v01升级到ACME v02在getssl.cfg文件中找到以下行:CA =“ getssl从letencrypt.org ACME服务器获取SSL证书,适用于自动化远程服务器上的过程。从ACME v01升级到ACME v02查找getssl.cfg文件中的以下行:CA =“ ...