微信開發https服務搭建

tomcat配置https協議詳細步驟

1.介紹了密碼學的相關基礎知識後,本文介紹如何在tomcat上搭建https服務。java

 環境:jdk7,tomcat7,windows7web

2.咱們使用java中自帶的javatool工具來製做所需的https所需的證書,keytool是java自帶的用於密鑰和證書的生成和管理工具。apache

3.這裏先介紹兩個文件格式:windows

 jks(java key store),用來存儲密鑰已經數字證書的文件瀏覽器

 csr(Certificate Signing Request),證書請求文件(就是證書申請者向相關證書頒發機構申請證書時所提交的文件,機構使用其根證書私鑰簽名就生成了證書公鑰文件--證書)。tomcat

 cer:用於存儲公鑰證書的文件(就是數字證書)服務器

4.在開始以前咱們先明白咱們應該怎樣作:jsp

  4.1.先製做一個根證書(用於簽發服務證書)工具

  4.2.生成一個CSR格式的證書請求文件ui

  4.3.用根證書對證書請求文件作簽名,並生成服務證書

  4.4.將根證書添加到瀏覽器受信任的根證書頒發機構中

  4.5.配置tomcat,使之支持https,併爲它指明已經簽發好的服務證書的路徑

  4.6.部署一個web應用,並訪問。

5.咱們先進入命令行窗口,輸入keytool,顯示以下:

         tomcat配置https協議詳細步驟

 咱們能夠看到,有生成證書請求,生成密鑰對,根據證書請求生成證書等想關命令。

 

Step1:生成根證書

     keytool -genkeypair -alias ROOTCERT -keyalg RSA -keystore rootlib.jks

     命令解釋:生成一對RSA非對稱密鑰和一個自簽名證書,以別名ROOTCERT存儲在rootlib中。

     注意:enter後,會提示輸入密鑰庫的使用口令,和填寫相關OU,CN等信息。以下圖:

         tomcat配置https協議詳細步驟

     以後會在你的當前工做目錄下生成一個rootlib.jks的文件。

Step2:生成證書請求

      1)keytool -genkeypair -alias SERVERCERT -keyalg RSA -keystore serverlib.jks (跟step1步驟同樣)。

       注意:此時」您的名字與姓氏是什麼」 ,須要輸入localhost(就是證書請求者的域名)。

      2)keytool -certreq -file server.csr -alias SERVERCERT -keystore serverlib.jks

       命令解釋:在serverlib文件中從別名爲SERVERCERT中取出公鑰和用戶信息生 成證書請求,並寫入到server.csr文件中。

      以後會在你的當前工做目錄下生成一個server.csr的文件。

Step3:用根證書對證書請求籤名,生成應用證書

      keytool -gencert -infile server.csr -outfile servercert.cer -alias ROOTCERT -keystore rootlib.jks

      命令解釋:使用別名爲ROOTCERT的私鑰對server.csr證書請求進行簽發證書,並導入到servercert.cer 文件中。

Step4:導出根證書,添加爲客戶端受信任的根證書頒發機構中

     1)keytool -exportcert -alias ROOTCERT -file root.cer -keystore rootlib.jks

     命令解釋:從rootlib.jks將別名ROOTCERT的證書導出到root.cer文件中

     2)回到圖形界面,切到命令窗口的工做目錄下,會有5個文件。

                    tomcat配置https協議詳細步驟

     雙擊root.cer

             tomcat配置https協議詳細步驟

     點擊安裝證書,而後下一步,注意:

          tomcat配置https協議詳細步驟

    在證書存儲時,選擇放入指定的證書存儲,點擊瀏覽,選擇受信任的根證書頒發 機構,而後確認,下一步,完成,確認添加,便可。

Step5:配置tomcat

     1)咱們先要更新serverlib.jks中的證書(用根證書籤發好的應用證書--servercert.cer)

       keytool -importcert -alias SERVERCERT -file server.cer -keystore serverlib.jks

      此時會報:沒法從回覆中創建鏈(這是由於更新的證書沒法信任)。咱們先要將根證書導入到serverlib.jks中,使之信任

      2)keytool -importcert -alias TRUSTCERT -file root.cer -keystore serverlib.jks

      3)這是在執行1)中的命令,便可更新。

       注意:更新證書時的別名不能寫錯,不然keytool工具會認爲添加。

      4)如今開始配置tomcat,修改server.xml文件

                   <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"

               minSpareThreads="5" maxSpareThreads="75"

               enableLookups="true" disableUploadTimeout="true"

               acceptCount="100"  maxThreads="200" SSLEnabled="true" 

                    scheme="https" secure="true"

               keystoreFile="E:/key/serverlib.jks" keystorePass="123456"

               clientAuth="false" sslProtocol="TLS"/>

          clientAuth:設置是否雙向驗證,默認爲false,設置爲true表明雙向驗證,這裏咱們通常只作服務器驗證

          keystoreFile:服務器證書文件路徑

          keystorePass:服務器證書密碼

          truststorePass:根證書密碼

           注意:tomcat中https端口是8443,我改爲了443(https的默認端口),須要將http的redirectPort值也要改爲443,這樣瀏覽器發送https請求時才能夠重定向到修改的443端口上。

       5)部署一個web應用,修改首頁index.jsp

            tomcat配置https協議詳細步驟

        將應用添加到tomcat中,啓動tomcat。

        在地址欄輸入:

            tomcat配置https協議詳細步驟

         點擊Login

            tomcat配置https協議詳細步驟

         此時再看地址欄,咱們點擊https前面的鎖,就能夠看到咱們的應用證書了。

              tomcat配置https協議詳細步驟

        

          在點擊證書信息,就能夠看咱們申請的證書內容了,此時咱們再用代理的方式抓包以下:

                tomcat配置https協議詳細步驟

         

          瀏覽器與服務器之間數據就會被加密後在傳輸了。

          注意:在step2時,咱們生成證書請求時的 」您的名字與姓氏是什麼」的值須要咱們的服務的主機名,若是不一致的瀏覽器訪問時就會報錯,以下圖

                 tomcat配置https協議詳細步驟

相關文章
相關標籤/搜索