乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      openssl 創(chuàng)建ssl證書(shū)

       mrjbydd 2011-09-17

      openssl 創(chuàng)建ssl證書(shū)

       

      http://han-zw./blog/640737 轉(zhuǎn)自這里

      前段時(shí)間接觸webservice,需要建立基于ssl的webservice以保證安全性,并要提供數(shù)字的支持。關(guān)于這部分以前沒(méi)有搞過(guò),經(jīng)過(guò)摸索總算有些收獲?,F(xiàn)在把我的一些經(jīng)驗(yàn)share一下。

      一、 數(shù)字證書(shū)的相關(guān)準(zhǔn)備
      關(guān)于數(shù)字證書(shū)部分我是用openssl做的,也是個(gè)開(kāi)源的軟件,前不久剛剛發(fā)布了1.0版本(做了11年才正式發(fā)布,由衷的佩服,老外真是有股哏勁)。網(wǎng)上很多文章介紹用java自帶的keytool命令完成,我沒(méi)有試過(guò),不過(guò)看文章介紹好像keytool沒(méi)有CA認(rèn)證的功能。下面開(kāi)始數(shù)字證書(shū)相關(guān)操作。


      1. 下載、安裝openssl(好像是廢話)
      Openssl建議大家用1.0版本,畢竟是正式版本。我用的時(shí)候正式版還沒(méi)出來(lái),當(dāng)時(shí)用的是OpenSSL 0.9.8m,不要用OpenSSL 0.9.8h這個(gè)版本(有個(gè)bug,會(huì)影響到后面的操作)。安裝后從命令行進(jìn)入安裝目錄下的bin目錄。Ready! GO!。


      2.創(chuàng)建CA的私鑰
      執(zhí)行以下命令openssl genrsa -des3 -out ../demo/ca/ca.key 1024
      demo是我的工作目錄,接下來(lái)會(huì)提示你輸入密碼,后面用到的密碼會(huì)很多,最好都認(rèn)真記下來(lái)。


      3.創(chuàng)建CA證書(shū)
      openssl req -new -x509 -key ../demo/ca/ca.key -out ../demo/ca/ca.crt -days 365
      x509是一種加密的標(biāo)準(zhǔn),-out是指輸出的文件路徑,-key是指定私鑰,也就是上一步生成的那個(gè),-days是指證書(shū)有效期。
      注:再輸入common name時(shí)你可以指定你自己的名字,但是不能輸入你的服務(wù)器名(www.XX.X.com)


      4.創(chuàng)建server端的私鑰
      因?yàn)樵蹅兪且趕erver端提供SSL的webservice,所以在server端需要使用私鑰庫(kù)和信任庫(kù)。
      openssl genrsa -des3 -out ../demo/server/server.key 1024

       

      5.創(chuàng)建server證書(shū)簽名請(qǐng)求
      我們可以發(fā)送簽名請(qǐng)求到一個(gè)官方的CA機(jī)構(gòu),這些機(jī)構(gòu)都是要收費(fèi)的,而且還要嚴(yán)格審核,至于我們自己開(kāi)發(fā)過(guò)程中的話實(shí)在是沒(méi)必要。我們直接發(fā)送到我們剛才通過(guò)openssl構(gòu)建的CA就可以了。
      openssl req -new -key ../demo/server/server.key -out ../demo/server/server.csr
      注意這里的common name,此處填寫(xiě)你的服務(wù)器的ip或者域名,例如localhost,也就是你要為哪臺(tái)服務(wù)器做證書(shū)就指定那臺(tái)機(jī)器。

       

      6.CA簽署server證書(shū)
      如果是第一次通過(guò)CA簽署證書(shū)的話,執(zhí)行如下命令
      openssl x509 -req -days 30 -in ../demo/server/server.csr -CA ../demo/ca/ca.crt -CAkey ../demo/ca/ca.key -CAcreateserial -out ../demo/server/server.crt
      其中的-CAcreateserial是指創(chuàng)建一個(gè)新的序列文件。這樣openssl會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為ca.srl的文件存儲(chǔ)序列號(hào)(官方是這樣說(shuō)的,我本地產(chǎn)生的序列文件是.srl,搞不清怎么回事,可能是創(chuàng)建時(shí)沒(méi)指定名字吧,不過(guò)不影響后面的操作)。下次再次簽署證書(shū)時(shí)就可以直接指定這個(gè)序列文件了。命令如下:openssl x509 -req -days 30 -in ../demo/server/server.csr -CA ../demo/ca/ca.crt -CAkey ../demo/ca/ca.key -CAserial .srl -out ../demo/server/server.crt
      輸入CA私鑰的密碼后簽署成功。

       

      7.創(chuàng)建server端的pkcs12文件
      openssl pkcs12 -export -in ../demo/server/server.crt -inkey ../demo/server/server.key -out ../demo/server/server.p12 -name demo_server
      注意其中的-name demo_server,這個(gè)是指定keystore的別名,記下來(lái),很重要哦(weblogic要用到,網(wǎng)上的資料都沒(méi)有這個(gè)參數(shù),害得我weblogic配置時(shí)費(fèi)老了勁了)。

       

      8.轉(zhuǎn)換pkcs12為JKS keystore文件
      這個(gè)過(guò)程需要用到j(luò)etty.jar,下載相應(yīng)jar后添加到classpath,然后執(zhí)行如下命令
      java org.mortbay.util.PKCS12Import ../demo/server/server.p12 ../demo/server/server.jks
      在此處輸入上一步設(shè)置到export password。

      Server端相關(guān)文件就完成了,現(xiàn)在可以用java的keytool命令查看一下生成的server.jks的內(nèi)容
      keytool -v -list -keystore ../demo/server/server.jks
      接下來(lái)開(kāi)始準(zhǔn)備client端的相關(guān)文件,因?yàn)槲覀儐⒂昧藬?shù)字證書(shū)的機(jī)制,client在通過(guò)webservice訪問(wèn)server時(shí)也需要提供自己的證書(shū),也就是server和client相互認(rèn)證(客戶要求的,唉)。客戶端的相關(guān)操作與server端類似,不做過(guò)多說(shuō)明。

       

      9.創(chuàng)建client端的私鑰
      openssl req -new -newkey rsa:1024 -nodes  -out ../demo/client/client.req -keyout ../demo/client/client.key

       

      10.創(chuàng)建client端證書(shū)簽名請(qǐng)求
      openssl x509 -CA ../demo/ca/ca.crt -CAkey ../demo/ca/ca.key -CAserial .srl -req -in ../demo/client/client.req -out ../demo/client/client.pem -days 365

       

      11.創(chuàng)建client端的pkcs12文件
      openssl pkcs12 -export -clcerts -in ../demo/client/client.pem -inkey ../demo/client/client.key -out ../demo/client/client.p12 -name

       

      12.創(chuàng)建client端的jks文件
      java org.mortbay.util.PKCS12Import ../demo/client/client.p12 ../demo/client/client.jks

       

      13.創(chuàng)建信任密鑰庫(kù)
      這次用到j(luò)ava的keytool命令
      keytool -genkey -alias dummy -keyalg RSA -keystore ../demo/server/truststore.jks
      到此為止數(shù)字證書(shū)的部分就完成了,下面介紹一下tomcat如何配置ssl支持。

       

      14.將CA認(rèn)證過(guò)的證書(shū)導(dǎo)入信任庫(kù)

      keytool -import -v -trustcacerts -alias my_ca -file ../demo/ca/ca.crt -keystore ../demo/server/truststore.jks

      通過(guò)下面的命令可以查看信任庫(kù)的詳細(xì)信息

      keytool -v -list -keystore ../demo/server/truststore.jks


      二、 tomcat ssl支持的配置

      1. 在tomcat的server.xml中添加一個(gè)新的connector,配置如下
      <Connector  port="8443" maxHttpHeaderSize="8192" 
      SSLEnabled="true"
               maxThreads="150" 
               minSpareThreads="25" 
               maxSpareThreads="75" 
               enableLookups="false" 
               disableUploadTimeout="true" 
               acceptCount="100" 
               scheme="https" 
               secure="true" 
               clientAuth="false" 
               sslProtocol="TLS" 
               keystoreFile="/conf/server.jks" 
               keystorePass="XXXXXX" 
               algorithm="SunX509" 
           /> 
      注:keystoreFile對(duì)應(yīng)server端的jks文件,keystorePass對(duì)應(yīng)其密碼

      2. 重啟tomcat,在瀏覽器中敲入https://localhost:8443/測(cè)試一下
      通過(guò)https訪問(wèn)web功能時(shí)需要在瀏覽器中導(dǎo)入證書(shū),因?yàn)槲覀冎饕鉀Qwebservice的ssl,關(guān)于瀏覽器如何導(dǎo)證書(shū)就不做介紹了。
      Tomcat的配置就這么簡(jiǎn)單。

      三、 weblogic9.2 ssl配置
      weblogic通過(guò)控制臺(tái)就可以完成ssl的配置,以下是部分截圖
      1. 登錄weblogic控制臺(tái) ,點(diǎn)擊頁(yè)面左端所屬域下的:環(huán)境>>服務(wù)器>> 點(diǎn)擊所屬服務(wù)器進(jìn)行編輯,在常規(guī)選項(xiàng)卡中作如下配置,如圖(注意紅色區(qū)域):
      [img]/admin/blogs/7.jpg" alt="圖7[/img]

       

      2. 切換到私鑰庫(kù)選項(xiàng)卡
      [img]/admin/blogs/8.jpg" alt="圖8[/img]
      注:1.密鑰庫(kù)選擇“自定義標(biāo)識(shí)和自定義信任”
            2.密鑰庫(kù)的位置可以用絕對(duì)路徑也可以用相對(duì)路徑
            3.密碼就是我們?cè)跀?shù)字證書(shū)部分的密碼


      3. 切換到SSL選項(xiàng)卡

      [img]/admin/blogs/9.jpg" alt="圖9[/img]

      注意那個(gè)私鑰別名,就是我們?cè)跀?shù)字證書(shū)部分指定的server私鑰的那個(gè)別名

      好了,保存設(shè)置后重啟就可以了。訪問(wèn)https://localhost:7002/試一下吧。

      終于寫(xiě)完了,以前老是在javaeye中看別人的文章,還老挑毛病,今天第一次寫(xiě)博客,沒(méi)想到這么累啊,實(shí)在是不會(huì)貼圖,搞了半天都不行,還是直接傳附件吧!

      這次算是投石問(wèn)路吧,好的話下周再寫(xiě)一下利用cxf建立SSL的webservice(數(shù)字證書(shū)以及鑒權(quán)機(jī)制)。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多