如何通過HTTPS方式訪問webservice

2021-03-19 18:21:29 字數 3123 閱讀 4238

1樓:楷泰康傑

web service在企業應用中常常被用作不同系統之間的介面方式。但是如果沒有任何安全機制的話,顯然是難以委以重任的。比較直接的web service加密方式就是使用https方式(ssl證書加密)加密連線,並且只允許持有信任證書的客戶端連線,即ssl雙向認證。

這樣就保證了連線**的可信度以及資料在傳輸過程中沒有被竊取或篡改。通過https加密方式訪問web service具體方法如下:

【準備工作】

(1)檢查jdk的環境變數是否正確。本文使用jdk 1.6

(2)準備web伺服器,這裡選用tomcat 6.0

(3)準備web service服務端和客戶端。

【生成證書】

這裡用到的檔案,這裡存放在d:/ssl/資料夾內,其中d:/ssl/server/內的檔案是要交給伺服器用的,d:/ssl/client/內的檔案是要交給客戶端用的。

1生成服務端證書

開始-執行-cmd-在dos視窗執行下執行命令:

keytool -genkey -v -aliastomcat -keyalg rsa -keystore d:/ssl/server/tomcat.keystore -dname"**=127.

0.0.1,ou=zlj,o=zlj,l=peking,st=peking,c=**" -validity 3650-storepass zljzlj -keypass zljzlj

說明:keytool 是jdk提供的證書生成工具,所有引數的用法參見keytool –help

-genkey 建立新證書

-v 詳細資訊

-alias tomcat 以」tomcat」作為該證書的別名。這裡可以根據需要修改

-keyalg rsa 指定演算法

-keystored:/ssl/server/tomcat.keystore 儲存路徑及檔名

-dname"**=127.0.0.

1,ou=zlj,o=zlj,l=peking,st=peking,c=**" 證書發行者身份,這裡的**要與釋出後的訪問域名一致。但由於這裡是自簽證書,如果在瀏覽器訪問,仍然會有警告提示。真正場景中建議申請ca機構(wosign)簽發的ssl證書更安全。

-validity 3650證書有效期,單位為天

-storepass zljzlj 證書的存取密碼

-keypass zljzlj 證書的私鑰

2 生成客戶端證書

執行命令:

keytool ‐genkey ‐v ‐aliasclient ‐keyalg rsa ‐storetype pkcs12 ‐keystore d:/ssl/client/client.p12 ‐dname"**=client,ou=zlj,o=zlj,l=bj,st=bj,c=**" ‐validity 3650 ‐storepassclient ‐keypass client

說明:引數說明同上。這裡的-dname 證書發行者身份可以和前面不同,到目前為止,這2個證書可以沒有任何關係。下面要做的工作才是建立2者之間的信任關係。

3 匯出客戶端證書

執行命令:

keytool ‐export ‐aliasclient ‐keystore d:/ssl/client/client.p12 ‐storetype pkcs12 ‐storepass client‐rfc ‐file d:

/ssl/client/client.cer

說明:-export 執行匯出

-file 匯出檔案的檔案路徑

4 把客戶端證書加入服務端證書信任列表

執行命令:

keytool ‐import ‐aliasclient ‐v ‐file d:/ssl/client/client.cer ‐keystored:

/ssl/server/tomcat.keystore ‐storepass zljzl

說明:引數說明同前。這裡提供的密碼是服務端證書的存取密碼。

5 匯出服務端證書

執行命令:

keytool -export -aliastomcat -keystore d:/ssl/server/tomcat.keystore -storepass zljzlj -rfc -filed:

/ssl/server/tomcat.cer

說明:把服務端證書匯出。這裡提供的密碼也是服務端證書的密碼。

6 生成客戶端信任列表

執行命令:

keytool -import -filed:/ssl/server/tomcat.cer -storepass zljzlj -keystored:

/ssl/client/client.truststore -alias tomcat –noprompt

說明:讓客戶端信任服務端證書

【 配置服務端為只允許https連線】

1 配置tomcat 目錄下的/conf/server.xml

xml**:

說明:在server.xml裡面這段內容本來是被註釋掉的,如果想使用https的預設埠443,請修改這裡的port引數。

其中的clientauth="true" 指定了雙向證書認證。

2 配置服務端專案web.xml

在之後增加xml**:

ssl/service/*

ssl required

confidential

說明:這裡限制了web service服務地址的訪問必須為https連線。要根據你的web service服務地址配置。

【修改客戶端**】

在執行訪問之前,增加java**:

system.setproperty("javax.***.ssl.truststore","d:/ssl/client/client.truststore");

system.setproperty("javax.***.ssl.truststorepassword","zljzlj");

system.setproperty("javax.***.ssl.keystoretype","pkcs12");

system.setproperty("javax.***.ssl.keystore","d:/ssl/client/client.p12");

system.setproperty("javax.***.ssl.keystorepassword","client");

如何通過HTTPS方式訪問webservice

web service在企業應用中常常被用作不同系統之間的介面方式。但是如果沒有任何安全機制的話,顯然是難以委以重任的。比較直接的web service加密方式就是使用https方式 ssl證書加密 加密連線,並且只允許持有信任證書的客戶端連線,即ssl雙向認證。這樣就保證了連線 的可信度以及資料在...

怎麼使用https協議訪問,如何使用https協議

除非 開通了2個協議都可以訪問,否則在https情況下是無法訪問http協議的。怎麼實現https訪問 您好!要實現https訪問,首選你需要申請一張ssl證書,然後將ssl證書部署到伺服器端,開啟443埠,就可以實現https訪問了。另外,如何獲得ssl證書呢?可以到ca機構申請付費和免費的ssl...

如何讓區域網其他電腦通過ip直接訪問自己的電腦

1 檢視自己ip 如果你是自動獲取ip的話 開始 執行 cmd 輸入ipconfig檢視自己ip 2 控制面板 網路和intelnet 檢視網路狀態選項 更改高階共享設定 啟用網路發現 3 共享你的資料夾 如果還不行 需要進行組策略設定 家庭版系統這裡不管用 右擊我的電腦 管理 本地使用者和組 使用...