荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (清风浮云 人生), 信区: Security
标  题: [转载] openssl简介--openssl上路(转寄)
发信站: BBS 荔园晨风站 (Sat Nov 11 13:43:42 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: xgh (小丙), 信区: Security
标  题: openssl简介--openssl上路
发信站: BBS 水木清华站 (Fri Nov 10 20:32:18 2000)

引用请指明原作/译者 fordesign@21cn.com

                       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.org down openssl吧,最新的是0.9.6版。

  安装是很简单的。我一直用的是sun sparc的机器,所以用sun sparc的机器做例子。
  gunzip -d openssl.0.9.6.tar.gz
  tar -xf openssl.0.9.6.tar
  mv openssl.0.9.6 openssl
  cd openssl
  ./configure --prefix=XXXXX --openssldir=XXXXXXXX
  (这里prefix是你想安装openssl的地方, openssldir就是你tar开的openssl源码
  的地方。好象所有的出名点的free software都是这个操行,configure, make ,
  make test, make install, 搞定。)
  ./make(如果机器慢,这一步的时候可以去洗个澡,换套衣服)
  ./make test
  ./make install

  OK, 如果路上没有什么问题的话,搞定。
  经常有人报bug, 在hp-ux, sgi上装openssl出问题,我没试过,没发言权。

  现在可以开始玩openssl了。

  注意: 我估计openssl最开始是在linux下开发的。大家可以看一看在linxu下有这么
一个文件:/dev/urandom, 在sparc下没有。这个文件有什么用?你可以随时找它要一
个随机数。在加密算法产生key的时候,我们需要一颗种子:seed。这个seed就是找
/dev/urandom要的那个随机数。那么在sparc下,由于没有这么一个设备,很多openssl
的函数会报错:"PRNG not seeded". 解决方法是:在你的~/.profile里面添加一个变
量$RANDFILE, 设置如下:
  $RANDFILE=$HOME/.rnd
  然后在$HOME下vi .rnd, 随便往里面乱输入一些字符,起码俩行。
  很多openssl的函数都会把这个文件当seed, 除了openssl rsa, 希望openssl尽快
修改这个bug.

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

  先生成自己的私有密钥文件,比如叫server.key
  openssl genrsa -des3 -out server.key 1024
  genras表示生成RSA私有密钥文件,-des3表示用DES3加密该文件,1024是我们的key
  的长度。一般用512就可以了,784可用于商业行为了,1024可以用于军事用途了。
  当然,这是基于现在的计算机的速度而言,可能没过几年1024是用于开发测试,2048
  用于一般用途了。
  生成server.key的时候会要你输入一个密码,这个密钥用来保护你的server.key文
  件,这样即使人家偷走你的server.key文件,也打不开,拿不到你的私有密钥。

  openssl rsa -noout -text -in server.key
  可以用来看看这个key文件里面到底有些什么东西(不过还是看不懂)

  如果你觉得server.key的保护密码太麻烦想去掉的话:
  openssl rsa -in server.key -out server.key.unsecure
  不过不推荐这么做

  下一步要得到证书了。得到证书之前我们要生成一个Certificate Signing Request.
  CA只对CSR进行处理。
  openssl req -new -key server.key -out server.csr
  生成CSR的时候屏幕上将有提示,依照其指示一步一步输入要求的信息即可.
  生成的csr文件交给CA签名后形成服务端自己的证书.怎么交给CA签名?
  自己去www.verisign.com慢慢看吧。

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

  在你make install之后,会发现有个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.

  看看我们的证书里面有些什么吧
  openssl x509 -noout -text -in server.crt

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


--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.38.248.1]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店