免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9375 | 回复: 19
打印 上一主题 下一主题

openssl自建证书SSL+apache [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-08 18:43 |只看该作者 |倒序浏览
或者:客户端如何向服务端申请证书
我用如下命令自签署证书,也不知命令对不对!
# openssl genrsa -des3 -out ca.key 1024
#openssl req -new -key ca.key -out ca.csr
#openssl x509 -req -days 3650 -signkey ca.key  -in ca.csr -out ca.crt

服务端证书
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
#openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -in server.csr -out server.crt  -CAcreateserial

签客户端证书:
#openssl genrsa -des3 -out client.key 1024
#openssl req -new -key client.key -out client.csr
#openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -in client.csr -out client.crt -CAcreateserial

#openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx

把ca.crt和client.pfx安装好后,client.pfx找不到信任的根证!
这是为什么,哪个地方出错了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-01-10 09:17 |只看该作者

openssl自建证书SSL+apache

UP!!!!!!!!救命

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2005-01-10 09:24 |只看该作者

openssl自建证书SSL+apache

你的做法好象有点问题.

是不是 https 根本就用不了?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-10 09:33 |只看该作者

openssl自建证书SSL+apache

我的服务起来了,服务端也要求必须提供证书才能浏览,只是安装的证书有问题,不知道是不是签的时候有错

论坛徽章:
2
双鱼座
日期:2014-02-23 12:10:03操作系统版块每日发帖之星
日期:2015-12-17 06:20:00
5 [报告]
发表于 2005-01-10 13:33 |只看该作者

openssl自建证书SSL+apache

帮忙顶顶。。。。

论坛徽章:
0
6 [报告]
发表于 2005-01-10 13:36 |只看该作者

openssl自建证书SSL+apache

http://www.csdn.net/develop/article/15/15178.shtm

参考下先

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-01-20 16:36 |只看该作者

openssl自建证书SSL+apache

我做好了,呵呵,下面是我写的笔记,转载请注明作者名:wingger


本文章在LINUX9+apache2.0.52,tomcat5.5.6,j2se1.5,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库
  1. #rpm –e –-nodeps openssl
复制代码

3、解压:
  1. #tar xzvf openssl-0.9.7e.tar.gz
复制代码

4、进入openssl目录,并安装,用--prefix指定openssl安装目录
  1. #cd openssl-0.9.7e
  2. #./config --prefix=/usr/local/openssl
  3. #make
  4. #make test
  5. #make install
复制代码


5、安装apache
至www.apache.org/dist下载apache最新版httpd-2.0.52.tar.gz
解压后进入apache目录,根据需要安装需要的模块,我这里装了ssl,rewrite,动态模式安装
  1. #tar zxvf httpd-2.0.52.tar.gz
  2. #cd httpd-2.0.52
  3. #./configure  --prefix=PREFIX   --enable-ssl   --enable-rewrite  --enable-so   --with-ssl=/usr/local/openssl
  4. #make
  5. #make install
复制代码


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

1、在/usr/local/apache/conf下,建立一个ssl.crt目录,将CA.sh文件copy至/usr/local/apache/conf/ssl.crt/目录
  1. [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文件了
  1. [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、签署服务器证书
生成服务器私钥:
  1. [root@win ssl.crt]# openssl genrsa -des3 -out server.key 1024
复制代码

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

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


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



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

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

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

把证书格式转换成pkcs12格式
  1. [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和证书放到这里
  1. #cp demoCA/cacert.pem cacert.pem
复制代码

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




步骤三、编辑ssl.conf
  1. #cd /usr/local/apache/conf
复制代码

编辑ssl.conf
  1. 指定服务器证书位置
  2. SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
  3. 指定服务器证书key位置
  4. SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key
  5. 证书目录
  6. SSLCACertificatePath /usr/local/apache/conf/ssl.crt
  7. 根证书位置
  8. SSLCACertificateFile /usr/local/apache/conf/ssl.crt/cacert.pem
  9. 开启客户端SSL请求
  10. SSLVerifyClient require
  11. SSLVerifyDepth  1
复制代码


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

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

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-01-20 16:46 |只看该作者

openssl自建证书SSL+apache

我现在有一个问题:我想和tomcat整合,然后SSL按控制。有没有办法

目前我整合用,用8080也用访问到我的SSL目录

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2015-08-06 06:20:00每日论坛发贴之星
日期:2015-08-06 06:20:00
9 [报告]
发表于 2005-01-20 17:18 |只看该作者

openssl自建证书SSL+apache

wingger,上次说话不客气了些,sorry again。Because I don't know that you are a G。以后要多向你请教哟。

论坛徽章:
0
10 [报告]
发表于 2005-01-20 18:03 |只看该作者

openssl自建证书SSL+apache

Wingger是我见到做技术做到专业化的头一个Girl,其他的做技术的女孩现在都转行做管理去了。。
adoring&pursuing
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP