古詩詞大全網 - 個性簽名 - 基於HTTPS的webservice 的環境籌建step by step怎麽解決

基於HTTPS的webservice 的環境籌建step by step怎麽解決

壹、 數字證書的相關準備

關於數字證書部分可以用openssl做的,也是個開源的軟件,前不久剛剛發布了1.0版本。下面開始數字證書相關操作。

1、下載、安裝openssl

Openssl建議大家用1.0版本,畢竟是正式版本。不要用OpenSSL 0.9.8h這個版本(有個bug,會影響到後面的操作)。安裝後從命令行進入安裝目錄下的bin目錄。Ready! GO!。

2、創建CA的私鑰

執行以下命令openssl genrsa -des3 -out ../demo/ca/ca.key 1024

demo是工作目錄,接下來會提示輸入密碼,後面用到的密碼會很多,最好都認真記下來。

3、創建CA證書

openssl req -new -x509 -key ../demo/ca/ca.key -out ../demo/ca/ca.crt -days 365

x509是壹種加密的標準,-out是指輸出的文件路徑,-key是指定私鑰,也就是上壹步生成的那個,-days是指證書有效期。

註:再輸入common name時可以指定自己的名字,但是不能輸入服務器名(www.XX.X.com)

4、創建server端的私鑰

因為是要在server端提供SSL的webservice,所以在server端需要使用私鑰庫和信任庫。

openssl genrsa -des3 -out ../demo/server/server.key 1024

5、創建server證書簽名請求

可以發送簽名請求到壹個官方的CA機構,這些機構都是要收費的,而且還要嚴格審核,至於自己開發過程中的話實在是沒必要。直接發送到剛才通過openssl構建的CA就可以了。

openssl req -new -key ../demo/server/server.key -out ../demo/server/server.csr

註意這裏的common name,此處填寫妳的服務器的ip或者域名,例如localhost,也就是要為哪臺服務器做證書就指定那臺機器。

6、CA簽署server證書

如果是第壹次通過CA簽署證書的話,執行如下命令

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是指創建壹個新的序列文件。這樣openssl會在當前目錄下創建壹個名為ca.srl的文件存儲序列號。下次再次簽署證書時就可以直接指定這個序列文件了。命令如下: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、創建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,這個是指定keystore的別名,記下來,很重要(weblogic要用到,網上的資料都沒有這個參數)。

8、轉換pkcs12為JKS keystore文件

這個過程需要用到jetty.jar,下載相應jar後添加到classpath,然後執行如下命令

java org.mortbay.util.PKCS12Import ../demo/server/server.p12 ../demo/server/server.jks

在此處輸入上壹步設置到export password。

Server端相關文件就完成了,現在可以用java的keytool命令查看壹下生成的server.jks的內容

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

接下來開始準備client端的相關文件,因為啟用了數字證書的機制,client在通過webservice訪問server時也需要提供自己的證書,也就是server和client相互認證(客戶要求的)。客戶端的相關操作與server端類似,不做過多說明。

9、創建client端的私鑰

openssl req -new -newkey rsa:1024 -nodes -out ../demo/client/client.req -keyout ../demo/client/client.key

10、創建client端證書簽名請求

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、創建client端的pkcs12文件

openssl pkcs12 -export -clcerts -in ../demo/client/client.pem -inkey ../demo/client/client.key -out ../demo/client/client.p12 -name

12、創建client端的jks文件

java org.mortbay.util.PKCS12Import ../demo/client/client.p12 ../demo/client/client.jks

13、創建信任密鑰庫

這次用到java的keytool命令

keytool -genkey -alias dummy -keyalg RSA -keystore ../demo/server/truststore.jks

到此為止數字證書的部分就完成了,下面介紹壹下tomcat如何配置ssl支持。

14、將CA認證過的證書導入信任庫

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

通過下面的命令可以查看信任庫的詳細信息

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

二、 tomcat ssl支持的配置

1. 在tomcat的server.xml中添加壹個新的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對應server端的jks文件,keystorePass對應其密碼

2. 重啟tomcat,在瀏覽器中敲入https://localhost:8443/測試壹下

通過https訪問web功能時需要在瀏覽器中導入證書,因為我們主要解決webservice的ssl,關於瀏覽器如何導證書就不做介紹了。

Tomcat的配置就這麽簡單。

三、 weblogic9.2 ssl配置

weblogic通過控制臺就可以完成ssl的配置,以下是部分截圖

1. 登錄weblogic控制臺 ,點擊頁面左端所屬域下的:環境>>服務器>> 點擊所屬服務器進行編輯,在常規選項卡中作如下配置,如圖(註意紅色區域):

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

2. 切換到私鑰庫選項卡

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

註:1.密鑰庫選擇“自定義標識和自定義信任”

2.密鑰庫的位置可以用絕對路徑也可以用相對路徑

3.密碼就是我們在數字證書部分的密碼

3. 切換到SSL選項卡

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

註意那個私鑰別名,就是我們在數字證書部分指定的server私鑰的那個別名

好了,保存設置後重啟就可以了。訪問https://localhost:7002/試壹下。