當前位置:編程學習大全網 - 編程語言 - 如何通過HTTPS方式訪問web service

如何通過HTTPS方式訪問web service

 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"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650-storepass zljzlj -keypass zljzlj

說明:

keytool 是JDK提供的證書生成工具,所有參數的用法參見keytool –help

-genkey 創建新證書

-v 詳細信息

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

-keyalg RSA 指定算法

-keystoreD:/SSL/server/tomcat.keystore 保存路徑及文件名

-dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 證書發行者身份,這裏的CN要與發布後的訪問域名壹致。但由於這裏是自簽證書,如果在瀏覽器訪問,仍然會有警告提示。真正場景中建議申請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"CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐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代碼:

<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"clientAuth="true"

sslProtocol="TLS"keystoreFile="D:/SSL/server/tomcat.keystore"

keystorePass="zljzlj"truststoreFile="D:/SSL/server/tomcat.keystore"

truststorePass="zljzlj" />

說明:

在server.xml裏面這段內容本來是被註釋掉的,如果想使用https的默認端口443,請修改這裏的port參數。其中的clientAuth="true" 指定了雙向證書認證。

  • 上一篇:汽車診斷儀哪個牌子好 功能全(汽車obd檢測儀哪個牌子好)
  • 下一篇:潭州教育網絡科技有限公司南京理工大學設計類課程***建是真的嗎?
  • copyright 2024編程學習大全網