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

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

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

    捕風之巢

    統計

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評論排行榜

    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 的函數會報錯: "RNG 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 的指令繁多,就象天上的星星。慢慢一個一個解釋吧。

    posted on 2006-10-17 15:24 捕風 閱讀(422) 評論(0)  編輯  收藏 所屬分類: java安全

    主站蜘蛛池模板: 色妞www精品视频免费看| 亚洲美女视频免费| 国产偷国产偷亚洲高清人 | 四虎影视在线永久免费观看| 久久精品国产亚洲AV忘忧草18| 999任你躁在线精品免费不卡| 亚洲制服中文字幕第一区| 亚洲精品免费视频| 亚洲成人高清在线观看| 中文字幕无码不卡免费视频| 亚洲午夜精品一区二区麻豆| 免费高清小黄站在线观看| 美女黄频a美女大全免费皮| 亚洲欧洲日产国码高潮αv| 国产日韩在线视频免费播放| 亚洲国产精华液网站w| 在线看无码的免费网站| 亚洲午夜久久久精品电影院| 女人张腿给男人桶视频免费版| 国产精品亚洲精品日韩电影| 国产亚洲精久久久久久无码AV| 美女视频黄a视频全免费网站色窝| 亚洲尹人九九大色香蕉网站 | 亚洲aⅴ天堂av天堂无码麻豆| 亚洲av午夜精品一区二区三区| 中文字幕版免费电影网站| 911精品国产亚洲日本美国韩国| 成人奭片免费观看| 一级中文字幕免费乱码专区| 亚洲一区二区成人| 日本免费一区二区三区最新 | 亚洲熟妇AV一区二区三区浪潮| 免费一看一级毛片| 久久免费的精品国产V∧| 亚洲日韩精品无码专区| 亚洲一级特黄大片在线观看| 2021在线观看视频精品免费| 色偷偷亚洲第一综合网| 亚洲色图在线播放| 亚洲AV无码一区二三区| 69精品免费视频|