Tomcat 配置Https請求

一、tomcat版本:apache-tomcat-8.5.8-windows-x64

二、SSL證書申請

  1. 用JDK自帶的keytool工具生成證書,可以用任意一臺安裝jdk的主機生成證書,無需申請,壞處是生成的證書沒有通過認證,瀏覽器訪問時,會出現不可信證書提醒,生成過程參考:http://lixor.iteye.com/blog/1532655

2、在第三方申請證書,國內外大多證書頒發單位都是收費的,也有部分是首年免費,本文檔演示的是在騰訊云DV SSL 域名型證書申請,首年免費,其他頒發單位參考:Let's Encrypt、StartSSL、COMODO PositiveSSL、CloudFlare SSL、Wosign沃通SSL等。

三、騰訊云證書申請過程

1、登錄騰訊云,選擇SSL證書管理(https://console.qcloud.com/ssl

證書列表

2、點擊申請證書


申請證書

3、填寫證書信息

填寫資料
填寫資料

注:
3.1 通用名稱為需要配置https協議訪問服務的域名
3.2 證書備注名隨便填,方便記憶即可
3.3 私鑰密碼填寫后必須留存,配置tomcat時需要用到

4、域名身份驗證,第一種是手動DNS驗證,這種方式需要用戶在域名上解析一條騰訊云制定的二級域名,由于映射方式CNAME方式萬網不提供,所以如果域名是在騰訊云上管理的可以采用這種方式,如果不是建議采用第二種文件驗證

選擇驗證方式

5、文件驗證
以下是官方提供的文件驗證方法:
https://www.qcloud.com/document/product/400/4142#3.-.E6.96.87.E4.BB.B6.E9.AA.8C.E8.AF.81

文件驗證
注意:

5.1 以tomcat為例,上訴的意思可以在Tomcat/webapp/Root文件夾下創建/.well-known/pki-validation文件目錄,創建文件flieauth.htm,文件的內容是:根據證書詳情中提供填寫。

5.2 WINDOWS操作系統手動是無法創建.開頭的文件夾,需要切換到DOS下,使用命令創建;
> md .well-known
5.3 windows server默認創建文本時隱藏了后綴名,所以最好是在本地創建好文件(確定文件后綴名是.htm)再放到服務器上;
5.4 配置好之后啟動tomcat,訪問路徑,查看是否操作成功(tomcat中conf/server.xml入口端口需改成80);
5.5 配置成功后會騰訊云會自動進行驗證,驗證通過后會有短信提醒,時間大概是幾分鐘。
6、證書成功申請后,下載下來,將其中tomcat的證書解壓到tomcat/conf目錄下;
7、證書成功申請后,在證書管理列表中點擊頒發進行證書頒發;
8、證書成功申請后,點擊分配項目,分配到默認項目。

四、Tomcat配置

1、經過上述步驟我們已經得到了所需要的證書,將證書.jks文件放到tomcat/conf目錄下
證書信息
2、打開conf/server.xml文件進行編輯

2.1 配置80端口節點修改如下
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
2.2 在80端口配置節點下添加如下配置

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
<Certificate certificateKeystoreFile="conf/www.abc.com.jks" certificateKeyAlias="www.abc.com"
            certificateKeystorePassword="sunrise2017"
                         type="RSA" />
        </SSLHostConfig>
</Connector>

注:certificateKeystoreFile是證書.jks文件的保存位置,此處是conf目錄,如果是其他地址請填寫完整目錄;certificateKeyAlias是證書別名,建議放訪問域名;certificateKeystorePassword是證書密碼,在證書申請時填寫保存的(很重要)。

2.3 修改

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

2.4 修改后啟動tomcat,以https協議通過443端口訪問tomcat資源,如果正常訪問,則配置成功

3、80端口到https端口的自動映射

上述配置完成之后80端口和443端口是單獨訪問的,為了讓用戶在訪問80端口時自動跳轉443端口,需要修改conf/web.xml文件,打開文件在倒數第二行添加如下代碼即可:

<security-constraint>
    <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>
       </web-resource-collection>                             
       <user-data-constraint>
       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
</security-constraint>
4、重啟tomcat配置完成

<strong>特別注意:</strong>
1.此處配置的域名必須完成備案,否則80端口無法訪問(如果沒有備案,在申請證書驗證的時候就無法通過,驗證需要通過域名的80端口訪問);
2.此處申請的證書綁定的是www頂級域名,親測配置完成后二級域名也可使用https訪問,但是會提示證書不安全,如有需要建議單獨申請

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,992評論 19 139
  • 服務器https配置 配置https操作說明文檔 1、查看服務器環境配置(tomcat和apache合并使用) 2...
    南京楊小兵閱讀 8,942評論 0 9
  • WWDC 16 中,Apple 表示將繼續在 iOS 10 和 macOS 10.12 里收緊對普通 HTTP 的...
    小如99閱讀 6,223評論 0 25
  • 基礎概念介紹:秘鑰/證書/https握手/CA相關概念crt證書: 只含有公鑰p12證書: 是包含證書(含公鑰...
    liangxifeng833閱讀 5,722評論 0 10
  • 在使用過一段時間的騰訊路寶之后,決定談談關于導航的一些事兒。 在接觸騰訊路寶之前,我的首選導航一直都是高德,對于高...
    延遲玩樂閱讀 1,119評論 0 1