`
javathinker
  • 浏览: 225081 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

OpenSSL 中文手册 之四 OpenSSL 简介-入门

 
阅读更多

实现了SSL的软件不多,但都蛮优秀的。首先,netscape自己提出来的概念,当然自己会实现一套了。netscape的技术蛮优秀的,不过我没用过他们的ssl-toolkit.甚至连名字都没搞清楚。

1995年,eric.young开始开发openssl,那时候叫ssleay.一直到现在,openssl还在不停的修改和新版本的发行之中。openssl真够大的,我真佩服eric的水平和兴趣。这些open/free的斗士的精神是我写这个系列的主要动力,虽然写的挺烦的。

ps:eric现在去了RSA公司做,做了一个叫SSL-C的toolkit,其实和openssl差不多。估计应该比openssl稳定,区别是这个是要银子的,而且几乎所有低层的函数都不提供直接调用了。那多没意思。

去www.openssl.orgdownopenssl吧,最新的是0.9.6版。

安装是很简单的。我一直用的是sunsparc的机器,所以用sunsparc的机器做例子。

gunzip-dopenssl.0.9.6.tar.gz

tar-xfopenssl.0.9.6.tar

mvopenssl.0.9.6openssl

cdopenssl

./configure--prefix=XXXXX--openssldir=XXXXXXXX

(这里prefix是你想安装openssl的地方,openssldir就是你tar开的openssl源码的地方。好象所有的出名点的freesoftware都是这个操行,configure,make,maketest,makeinstall,搞定。)

./make(如果机器慢,这一步的时候可以去洗个澡,换套衣服)

./maketest

./makeinstall

OK,如果路上没有什么问题的话,搞定。

经常有人报bug,在hp-ux,sgi上装openssl出问题,我没试过,没发言权。

现在可以开始玩openssl了。

注意:我估计openssl最开始是在linux下开发的。大家可以看一看在linxu下有这么一个文件:/dev/urandom,在sparc下没有。这个文件有什么用?你可以随时找它要一个随机数。在加密算法产生key的时候,我们需要一颗种子:seed。这个seed就是找/dev/urandom要的那个随机数。那么在sparc下,由于没有这么一个设备,很多openssl的函数会报错:"PRNGnotseeded".解决方法是:在你的~/.profile里面添加一个变量$RANDFILE,设置如下:

$RANDFILE=$HOME/.rnd

然后在$HOME下vi.rnd,随便往里面乱输入一些字符,起码俩行。

很多openssl的函数都会把这个文件当seed,除了opensslrsa,希望openssl尽快修改这个bug.

如果用openssl做toolkit编程,则有其他不太安全的解决方法。以后讲到openssl编程的章节会详细介绍。

先生成自己的私有密钥文件,比如叫server.key

opensslgenrsa-des3-outserver.key1024

genras表示生成RSA私有密钥文件,-des3表示用DES3加密该文件,1024是我们的key的长度。一般用512就可以了,784可用于商业行为了,1024可以用于军事用途了。

当然,这是基于现在的计算机的速度而言,可能没过几年1024是用于开发测试,2048用于一般用途了。

生成server.key的时候会要你输入一个密码,这个密钥用来保护你的server.key文件,这样即使人家偷走你的server.key文件,也打不开,拿不到你的私有密钥。

opensslrsa-noout-text-inserver.key

可以用来看看这个key文件里面到底有些什么东西(不过还是看不懂)

如果你觉得server.key的保护密码太麻烦想去掉的话:

opensslrsa-inserver.key-outserver.key.unsecure

不过不推荐这么做



下一步要得到证书了。得到证书之前我们要生成一个CertificateSigningRequest.

CA只对CSR进行处理。

opensslreq-new-keyserver.key-outserver.csr

生成CSR的时候屏幕上将有提示,依照其指示一步一步输入要求的信息即可.

生成的csr文件交给CA签名后形成服务端自己的证书.怎么交给CA签名?

自己去www.verisign.com慢慢看吧。



如果是自己玩下,那么自己来做CA吧。openssl有很简单的方法做CA.但一般只好在开发的时候或者自己玩的时候用,真的做出产品,还是使用正规的CA签发给你的证书吧

在你makeinstall之后,会发现有个misc的目录,进去,运行CA.sh-newca,他会找你要CA需要的一个CA自己的私有密钥密码文件。没有这个文件?按回车创建,输入密码来保护这个密码文件。之后会要你的一个公司信息来做CA.crt文件。最后在当前目录下多了一个./demoCA这样的目录../demoCA/private/cakey.pem就是CA的key文件啦,

./demoCA/cacert.pem就是CA的crt文件了。把自己创建出来的server.crt文件copy到misc目录下,mv成newreq.pem,然后执行CA.sh-sign,ok,

得到回来的证书我们命名为server.crt.



看看我们的证书里面有些什么吧

opensslx509-noout-text-inserver.crt

玩是玩过了,openssl的指令繁多,就象天上的星星。慢慢一个一个解释吧。

分享到:
评论

相关推荐

    php手册.chm,php手册

    王远之 肖理达 肖盛文 黄啸宇 宋琪 陈伯乐 刘铭 崔岩 2005-09-12 版权 © 1997-2005 PHP 文档组 -------------------------------------------------------------------------------- 前言 作者和贡献者 I. ...

    PHP手册(带评论版-2008-03-14).part2.rar

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    PHP手册(带评论版-2008-03-14).part1.rar

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    php中文完全开发手册

    1. 简介 2. 简明教程 3. 安装 4. 运行时配置 II. 语言参考 5. 基本语法 6. 类型 7. 变量 8. 常量 9. 表达式 10. 运算符 11. 流程控制 12. 函数 13. 类与对象 14. 引用的解释 III. 安全 15. 安全 IV. 特点 16. 用 ...

    php帮助文档,php。chm,php必备的中文手册

    王远之 肖理达 肖盛文 黄啸宇 宋琪 陈伯乐 刘铭 崔岩 2005-11-18 版权 © 1997-2005 PHP 文档组 -------------------------------------------------------------------------------- 前言 作者和贡献者 I. ...

    PHP官方手册中文版

    PHP官方手册中文版 PHP 手册 Mehdi Achour Friedhelm Betz Antony Dovgal Nuno Lopes Philip Olson Georg Richter Damien Seguy Jakub Vrana 编辑 Gabor Hojtsy 目录 前言 作者和贡献者 I. 入门...

    PHP手册2007整合中文版

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    PHP5 开发手册 简体中文手册

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    PHP5中文参考手册

    OpenSSL — OpenSSL Functions Oracle — Oracle 函数(已废弃) Oracle (PDO) — Oracle Functions (PDO_OCI) Output Control — Output Control 输出控制函数 OvrimosSQL — Ovrimos SQL Functions Paradox — ...

    PHP函数参考手册大全

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    中文版PHP使用手册

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    php手册PHP5研究室编无乱码版本chm

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III...

    PHP5 完整官方 中文教程

    入门指引 简介 简明教程 安装与配置 安装前需要考虑的事项 Unix 系统下的安装 Mac OS X 系统下的安装 Windows 系统下的安装 PECL 扩展库安装 还有问题? 运行时配置 语言参考 基本语法 类型 变量 常量 表达式 运算符...

Global site tag (gtag.js) - Google Analytics