<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    捕風(fēng)之巢

    統(tǒng)計(jì)

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評(píng)論排行榜

    openssl簡(jiǎn)介(五)--入門(mén)

    ?

    五.???? 入門(mén)

    實(shí)現(xiàn)了 SSL 的軟件不多,但都蠻優(yōu)秀的。首先, netscape 自己提出來(lái)的概念,當(dāng)然自己會(huì)實(shí)現(xiàn)一套了。 netscape 的技術(shù)蠻優(yōu)秀的,不過(guò)我沒(méi)用過(guò)他們的 ssl-toolkit. 甚至連名字都沒(méi)搞清楚。
    ? ? 1995
    年, eric.young 開(kāi)始開(kāi)發(fā) openssl, 那時(shí)候叫 ssleay. 一直到現(xiàn)在, openssl 還在不停的修改和新版本的發(fā)行之中。 openssl 真夠大的,我真佩服 eric 的水平和興趣。這些 open/free 的斗士的精神是我寫(xiě)這個(gè)系列的主要?jiǎng)恿Γm然寫(xiě)的挺煩的。
    ps: eric
    現(xiàn)在去了 RSA 公司做,做了一個(gè)叫 SSL-C toolkit, 其實(shí)和 openssl 差不多。估計(jì)應(yīng)該比 openssl 穩(wěn)定,區(qū)別是這個(gè)是要銀子的,而且?guī)缀跛械蛯拥暮瘮?shù)都不提供直接調(diào)用了。那多沒(méi)意思。
    ? ?
    www.openssl.org down openssl 吧,最新的是 0.9.6 版。
    ? ?
    安裝是很簡(jiǎn)單的。我一直用的是 sun sparc 的機(jī)器,所以用 sun sparc 的機(jī)器做例子。
    ? ? 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 開(kāi)的 openssl 源碼的地方。好象所有的出名點(diǎn)的 free software 都是這個(gè)操行, configure, make , make test, make install, 搞定。 )
    ? ? ./make(
    如果機(jī)器慢,這一步的時(shí)候可以去洗個(gè)澡,換套衣服 )
    ? ? ./make test
    ? ? ./make install
    ? ? OK,
    如果路上沒(méi)有什么問(wèn)題的話,搞定。
    ? ?
    經(jīng)常有人報(bào) bug, hp-ux, sgi 上裝 openssl 出問(wèn)題,我沒(méi)試過(guò),沒(méi)發(fā)言權(quán)。
    ? ?
    現(xiàn)在可以開(kāi)始玩 openssl 了。
    ? ?
    注意: 我估計(jì) openssl 最開(kāi)始是在 linux 下開(kāi)發(fā)的。大家可以看一看在 linxu 下有這么一個(gè)文件: /dev/urandom, sparc 下沒(méi)有。這個(gè)文件有什么用?你可以隨時(shí)找它要一個(gè)隨機(jī)數(shù)。在加密算法產(chǎn)生 key 的時(shí)候,我們需要一顆種子: seed 。這個(gè) seed 就是找 /dev/urandom 要的那個(gè)隨機(jī)數(shù)。那么在 sparc 下,由于沒(méi)有這么一個(gè)設(shè)備,很多 openssl 的函數(shù)會(huì)報(bào)錯(cuò): "RNG not seeded". 解決方法是:在你的 ~/.profile 里面添加一個(gè)變量 $RANDFILE 設(shè)置如下:
    ? ? $RANDFILE=$HOME/.rnd
    ? ?
    然后在 $HOME vi .rnd, 隨便往里面亂輸入一些字符,起碼倆行。
    ? ?
    很多 openssl 的函數(shù)都會(huì)把這個(gè)文件當(dāng) seed, 除了 openssl rsa, 希望 openssl 盡快修改這個(gè) bug.
    ? ?
    如果用 openssl toolkit 編程, 則有其他不太安全的解決方法。以后講到 openssl 編程的章節(jié)會(huì)詳細(xì)介紹。
    ? ?
    先生成自己的私有密鑰文件,比如叫 server.key
    ? ? openssl genrsa -des3 -out server.key 1024
    ? ? genras
    表示生成 RSA 私有密鑰文件, -des3 表示用 DES3 加密該文件, 1024 是我們的 key 的長(zhǎng)度。一般用 512 就可以了, 784 可用于商業(yè)行為了, 1024 可以用于軍事用途了。
    ? ?
    當(dāng)然,這是基于現(xiàn)在的計(jì)算機(jī)的速度而言,可能沒(méi)過(guò)幾年 1024 是用于開(kāi)發(fā)測(cè)試, 2048 用于一般用途了。
    ? ?
    生成 server.key 的時(shí)候會(huì)要你輸入一個(gè)密碼,這個(gè)密鑰用來(lái)保護(hù)你的 server.key 文件,這樣即使人家偷走你的 server.key 文件,也打不開(kāi),拿不到你的私有密鑰。
    ? ? openssl rsa -noout -text -in server.key
    ? ?
    可以用來(lái)看看這個(gè) key 文件里面到底有些什么東西 ( 不過(guò)還是看不懂 )
    ? ?
    如果你覺(jué)得 server.key 的保護(hù)密碼太麻煩想去掉的話:
    ? ? openssl rsa -in server.key -out server.key.unsecure
    ? ?
    不過(guò)不推薦這么做
    ? ?
    下一步要得到證書(shū)了。得到證書(shū)之前我們要生成一個(gè) Certificate Signing Request.
    ? ? CA
    只對(duì) CSR 進(jìn)行處理。
    ? ? openssl req -new -key server.key -out server.csr
    ? ?
    生成 CSR 的時(shí)候屏幕上將有提示 , 依照其指示一步一步輸入要求的信息即可 .
    ? ?
    生成的 csr 文件交給 CA 簽名后形成服務(wù)端自己的證書(shū) . 怎么交給 CA 簽名?
    ? ?
    自己去 www.verisign.com 慢慢看吧。
    ? ?
    ? ?
    如果是自己玩下,那么自己來(lái)做 CA 吧。 openssl 有很簡(jiǎn)單的方法做 CA. 但一般只好在開(kāi)發(fā)的時(shí)候或者自己玩的時(shí)候用,真的做出產(chǎn)品,還是使用正規(guī)的 CA 簽發(fā)給你的證書(shū)吧
    ? ?
    在你 make install 之后,會(huì)發(fā)現(xiàn)有個(gè) misc 的目錄,進(jìn)去,運(yùn)行 CA.sh -newca ,他會(huì)找你要 CA 需要的一個(gè) CA 自己的私有密鑰密碼文件。沒(méi)有這個(gè)文件?按回車(chē)創(chuàng)建,輸入密碼來(lái)保護(hù)這個(gè)密碼文件。之后會(huì)要你的一個(gè)公司信息 來(lái)做 CA.crt 文件。最后在當(dāng)前目錄下多了一個(gè) ./demoCA 這樣的目錄 ../demoCA/private/cakey.pem 就是 CA key 件啦,
    ? ? ./demoCA/cacert.pem
    就是 CA crt 文件了。把自己創(chuàng)建出來(lái)的 server.crt 文件 copy misc 目錄下, mv newreq.pem, 然后執(zhí)行 CA.sh -sign, ok,
    ? ?
    得到回來(lái)的證書(shū)我們命名為 server.crt.
    ? ?
    ? ?
    看看我們的證書(shū)里面有些什么吧
    ? ? openssl x509 -noout -text -in server.crt
    ? ?
    玩是玩過(guò)了, openssl 的指令繁多,就象天上的星星。慢慢一個(gè)一個(gè)解釋吧。

    posted on 2006-10-17 15:24 捕風(fēng) 閱讀(422) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java安全

    主站蜘蛛池模板: 亚洲色大18成人网站WWW在线播放| 国产成人精品免费视频网页大全| 亚洲人成网站在线观看播放青青| 亚洲欧洲精品成人久久奇米网| 国产在线观看片a免费观看| 成人影片一区免费观看| 免费一级毛片在线播放视频免费观看永久| 亚洲国产成人久久| 亚洲AV午夜成人影院老师机影院| 免费国产高清视频| 在线观看免费大黄网站| jjizz全部免费看片| 无码人妻一区二区三区免费看 | 18成禁人视频免费网站| 亚洲天堂免费在线视频| 国产青草亚洲香蕉精品久久| 国产精品亚洲片在线va| 亚洲高清视频免费| 亚洲国产精品lv| 亚洲爆乳无码专区| 亚洲av福利无码无一区二区| 中文字幕一精品亚洲无线一区| 高清在线亚洲精品国产二区| 国产精品公开免费视频| 日韩视频在线免费| 日本免费中文字幕在线看| 免费看AV毛片一区二区三区| 无码免费午夜福利片在线| 日韩视频在线精品视频免费观看| 亚洲视频免费观看| 曰批视频免费30分钟成人| 国产1000部成人免费视频| 久久久高清免费视频| 日韩免费一区二区三区在线播放| 免费成人激情视频| 久久不见久久见中文字幕免费| 午夜老司机免费视频| 又黄又大又爽免费视频| 亚洲国产精品专区在线观看 | 黄色一级视频免费| 一级成人生活片免费看|