1. 程式人生 > >Java後臺開發Tomcat新增https支援小程式開發過程

Java後臺開發Tomcat新增https支援小程式開發過程

文章原文:blog.ouyangsihai.cn >> Java後臺開發Tomcat新增https支援小程式開發過程

1 給自己的域名申請證書

注意:申請好了如果不是在騰訊註冊的域名,不會自動通過,需要手動驗證的,驗證方法如下:https://cloud.tencent.com/document/product/400/6814

驗證成功之後,才會給你下發證書。

2 給Tomcat安裝https證書

操作步驟

參考文件:https://cloud.tencent.com/document/product/400/4143

證書安裝
  1. 已在 SSL 證書管理控制檯 中下載並解壓縮 www.domain.com

    證書檔案包到本地目錄。 解壓縮後,可獲得相關型別的證書檔案。其中包含 Tomcat 資料夾和 CSR 檔案:

    • 資料夾名稱:Tomcat

    • 資料夾內容

      • www.domain.com.jks 金鑰庫
      • keystorePass.txt 密碼檔案(若已設定私鑰密碼,則無 keystorePass.txt 密碼檔案)
    • CSR 檔案內容www.domain.com.csr 檔案

      說明:

      CSR 檔案是申請證書時由您上傳或系統線上生成的,提供給 CA 機構。安裝時可忽略該檔案。

  2. 使用 “WinSCP” (即本地與遠端計算機間的複製檔案工具)登入 Tomcat 伺服器。

  3. 將已獲取到的 www.domain.com.jks

    金鑰庫檔案從本地目錄拷貝至 /usr/*/conf 目錄下。

  4. 遠端登入 Tomcat 伺服器。例如,使用 “PuTTY” 工具 登入。

  5. 編輯在 /usr/*/conf 目錄下的 server.xml 檔案。新增如下內容:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="/usr/*/conf/www.domain.com.jks" #證書儲存的路徑
    keystorePass="******"#金鑰庫密碼
    clientAuth="false"/>
    

    詳細 server.xml 檔案請參考如下內容:

    <?xml version="1.0" encoding="UTF-8"?>
    <Server port="8005" shutdown="SHUTDOWN">
     <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
     <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
     <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
     <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
     <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
    <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
               description="User database that can be updated and saved"
               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
               pathname="conf/tomcat-users.xml" />
    </GlobalNamingResources>
    <Service name="Catalina">
         <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />
         <Connector port="443" protocol="HTTP/1.1"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                clientAuth="false"
                 keystoreFile="/usr/*/conf/www.domain.com.jks"
                 keystorePass="******" />
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost=“www.domain.com">
       <Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase"/>
       </Realm>
     <Host name=“www.domain.com"  appBase="webapps" 
         unpackWARs="true" autoDeploy="true" >
         <Context path="" docBase ="Knews" />
     <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
            prefix="localhost_access_log" suffix=".txt"  
            pattern="%h %l %u %t "%r" %s %b" />
       </Host>
     </Engine>
    </Service>
    </Server>
    

    配置檔案的主要引數說明如下:

    • keystoreFile:金鑰庫檔案的存放位置,可以指定絕對路徑,也可以指定相對於 <CATALINA_HOME> (Tomcat安裝目錄)環境變數的相對路徑。如果此項沒有設定,預設情況下,Tomcat 將從當前作業系統使用者的使用者目錄下讀取名為 “.keystore” 的檔案。
    • keystorePass:金鑰庫密碼,指定 keystore 的密碼。申請證書時若設定了私鑰密碼,請填寫私鑰密碼;若申請證書時未設定私鑰密碼,請填寫 Tomcat 資料夾中 keystorePass.txt 檔案的密碼。
    • clientAuth:如果設為 true,表示 Tomcat 要求所有的 SSL 客戶出示安全證書,對 SSL 客戶進行身份驗證。

之後,重新啟動Tomat,即可完成!

文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號好好學java,獲取優質學習