Tomcat設定https訪問

來源:互聯網
上載者:User

      昨天,自己做伺服器的安全傳輸,在登入時用的是http協議,結果自己用抓包的軟體抓到後,探索資料完全可以看到。組長說這樣明文傳輸太不安全了,必須要加密才可以。在網上搜尋了資料,發現https的安全性較高,所有嘗試用tomcat做一個https的伺服器。網上很多教程都是不正確的,自己花了很多時間才把tomcat的https伺服器搭起來,然後用android用戶端進行訪問,最終做了出來。


1.用jdk產生tomcat的伺服器與用戶端需要的認證。

1、產生伺服器憑證庫

keytool -validity 3650 -genkey -v -alias server -keyalg RSA -keystore D:\ssl\server.keystore -dname "CN=192.168.1.190,OU=icesoft,O=icesoft,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456


2、產生用戶端認證庫

keytool -validity 3650 -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\ssl\client.p12 -dname "CN=client,OU=icesoft,O=icesoft,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456


3、從用戶端認證庫中匯出用戶端認證

keytool -export -v -alias client -keystore D:\ssl\client.p12 -storetype PKCS12 -storepass 123456 -rfc -file D:\ssl\client.cer


4、從伺服器憑證庫中匯出伺服器憑證

keytool -export -v -alias server -keystore D:\ssl\server.keystore -storepass 123456 -rfc -file D:\ssl\server.cer


5、產生用戶端信任認證庫(由服務端認證產生的認證庫)

keytool -import -v -alias server -file D:\ssl\server.cer -keystore D:\ssl\client.truststore -storepass 123456


6、將用戶端認證匯入到伺服器憑證庫(使得伺服器信任用戶端認證)

keytool -import -v -alias client -file D:\ssl\client.cer -keystore D:\ssl\server.keystore -storepass 123456


7、查看認證庫中的全部認證

keytool -list -keystore D:\ssl\server.keystore -storepass 123456


此時已經產生有效期間是10年的自訂認證,其中1、產生伺服器憑證庫的CN=192.168.1.190必須是tomcat伺服器的ip地址,自己需要根據自己的ip地址設定。此時在d盤的ssl檔案夾下產生了5個檔案,如果的盤之前沒有ssl檔案夾,記得建立一個,然後運行之前的代碼。會得到server.cer、client.cer(公開金鑰)、server.keystore(伺服器密鑰庫)等幾個檔案。server.cer會在Android用戶端的時候使用,用來加密資訊。


2.Tomcat配置

編輯${catalina.base}/conf/server.xml檔案(${catalina.base}指Tomcat的安裝目錄)。找到Connector port="8443"的標籤,取消注釋,並修改成如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS"
               keystoreFile="${catalina.base}/key/server.keystore" keystorePass="123456"
               truststoreFile="${catalina.base}/key/server.keystore" truststorePass="123456"/>

備忘:

keystoreFile:指定伺服器密鑰庫,可以配置成絕對路徑,如“D:\apache-tomcat-7.0.55/key/server.keystore”,這是我的tomcat的絕對路徑,根據自己的情況修改。本例中使用相對路徑,且在Tomcat目錄中建立了一個名稱為key的檔案夾,僅供參考。

keystorePass:密鑰庫產生時的密碼

truststoreFile:受信任密鑰庫,和密鑰庫相同即可

truststorePass:受信任密鑰庫密碼


此時點擊server.cer,瀏覽器會提示是否安裝認證,點擊安裝即可。


此時啟動tomcat,用https://localhost:8080/訪問即可。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.