ssl+tomcat 配置

如何使用JDK自帶的工具創建密匙庫和信任庫

WebService 是基於SOAP協議傳輸的,SOAP是以XML文件形式進行信息傳輸,是明文,這是不安全的,所以我們可以在WebService加上SSL/HTTPS協議來進行數據傳輸

基於AxisWebService可以很好的實現,在這裏我們使用tomcat服務器

使用JDK自帶的工具創建密匙庫和信任庫。

1)通過使用以下的命令來創建服務器端的密匙庫:

   keytool -genkey -alias Server -keystore server.keystore -keyalg RSA

輸入keystore密碼: strongit

您的名字與姓氏是什麼?

[Unknown] Server

您的組織單位名稱是什麼?

[Unknown] ec

您的組織名稱是什麼?

[Unknown] ec

您所在的城市或區域名稱是什麼?

[Unknown] nanchang

您所在的州或省份名稱是什麼?

[Unknown] jiangxi

該單位的兩字母國家代碼是什麼

[Unknown] CN

CN=Server, OU=ec, O=ec, L=beijing, ST=beijing, C=CN 正確嗎?

[] y

輸入<Server>的主密碼

        (如果和 keystore 密碼相同,按回車):

   以上命令執行完成後,將獲得一個名爲server.keystore的密匙庫。

  

2)生成客戶端的信任庫。首先輸出RSA證書:

keytool -export -alias Server -file test_axis.cer -storepass strongit-keystore server.keystore

然後把RSA證書輸入到一個新的信任庫文件中。這個信任庫被客戶端使用,被用來驗證服務器端的身份。

keytool -import -file test_axis.cer -storepass changeit -keystore client.truststore -alias serverkey -noprompt

以上命令執行完成後,將獲得一個名爲client.truststore的信任庫。

3)同理生成客戶端的密匙庫client.keystore和服務器端的信任庫server.truststore.方便起見給出.bat文件

     gen-cer-store.bat內容如下:

     set SERVER_DN="CN=Server, OU=ec, O=ec, L=nanchang, S=jiangxi, C=CN"

     set CLIENT_DN="CN=Client, OU=ec, O=ec, L=nanchang, S=jiangxi, C=CN"

     set KS_PASS=-storepass strongit

     set KEYINFO=-keyalg RSA

     keytool -genkey -alias Server -dname %SERVER_DN% %KS_PASS% -keystore server.keystore %KEYINFO% -keypass strongit

     keytool -export -alias Server -file test_axis.cer %KS_PASS% -keystore server.keystore

     keytool -import -file test_axis.cer %KS_PASS% -keystore client.truststore -alias serverkey -noprompt

     keytool -genkey -alias Client -dname %CLIENT_DN% %KS_PASS% -keystore client.keystore %KEYINFO% -keypass strongit

     keytool -export -alias Client -file test_axis.cer %KS_PASS% -keystore client.keystore

     keytool -import -file test_axis.cer %KS_PASS% -keystore server.truststore -alias clientkey -noprompt

    

好的,現在我們就有了四個文件:server.keystoreserver.truststoreclient.keystoreclient.truststore

 

更改Tomcat的配置文件(server.xml),增加以下部署描述符:(其實裏面有,只是被註釋掉了)

      <Connector port="8440"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               clientAuth="true" keystoreFile="f:\server.keystore" keystorePass="changeit"

                 truststoreFile="f:\server.truststore" truststorePass="changeit"

               sslProtocol="TLS" />

發佈了48 篇原創文章 · 獲贊 0 · 訪問量 2108
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章