記一次Windows下tomcat安裝SSL證書及配置HTTPS


首先找到 java 安裝目錄
我本地的安裝路徑為: C:\eclipse\pleiades\java\8\bin

CMD 進入 JDK 安裝目錄

cd C:\eclipse\pleiades\java\8\bin

使用 jdk 自帶 keytool.exe 生成 ssl 證書

注:以下目錄是我自己建的,在使用時修改為自己所創建的目錄

1、生成服務器證書

    keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:/ssl/tomcat.keystore -validity 365


    參數說明:
    genkey生成方式,對稱或者非對稱
    -alias tomcat(別名)
    -keyalg RSA(算法)
    -keysize 1024(密鑰長度)
    -validity 365(有效期,天單位)
    -keystore C:/keys1/tomcat.keystore(指定生成證書的位置和證書名稱)

_注:以上的 keystore 密碼建議設置成一致,避免混亂。這里設置測試密碼為 p@ssw0rd。輸入密碼后,提示輸入名字與姓氏,這里輸入瀏覽器訪問域名。其他項直接回車跳過即可。C:/ssl/ 目錄需要提前手動創建好,否則會生成失敗_

2、生成客戶端證書:

keytool -genkey -v -alias clientkey -keyalg RSA -storetype PKCS12 -keystore c:/ssl/clientkey.p12

3、這里服務端跟客戶端生成完證書,雙向需要認證。首先,讓服務器信任客戶端證書:

keytool -export -alias clientkey -keystore c:/ssl/clientkey.p12 -storetype PKCS12 -storepass p@ssw0rd -rfc -file c:/ssl/clientkey.cer

4、將客戶端證書導入服務器證書庫。(服務器信任客戶端證書)

keytool -import -v -file c:/ssl/clientkey.cer -keystore c:/ssl/tomcat.keystore

5、客戶端信任服務器證書:

keytool -keystore c:/ssl/tomcat.keystore -export -alias tomcat -file c:/ssl/tomcat.cer

在最后完成了窗口提示我用以下命令將證書轉換為 pkcs12 加密

keytool -importkeystore -srckeystore C:/ssl/tomcat.keystore -destkeystore C:/ssl/tomcat.keystore -deststoretype pkcs12

6.雙擊 tomcat.cer–>安裝證書–>證書存儲選擇“受信任的根證書頒發機構”–>后面根據提示安裝即可

7、配置 tomcat 種 server.xml 中 443 端口。觀察 tomcat 中端口配置:

這里有配置 redirectPort="443" 。猜測這里如果添加了 SSL/TLS 證書后,利用 http 協議 80 端口訪問將自動重定向到 443 端口。所以這里修改 443 為 TLS 認證協議:

    <Connector port="80" protocol="HTTP/1.1"
               maxParameterCount="-1"
               connectionTimeout="20000"
               redirectPort="443"
			   />

   <Connector port="443"
          protocol="org.apache.coyote.http11.Http11NioProtocol"
          maxThreads="150"
          SSLEnabled="true"
		  scheme="https"
		  secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\ssl\tomcat.keystore" keystorePass="p@ssw0rd"
		  truststoreFile="C:\ssl\tomcat.keystore" truststorePass="p@ssw0rd"
		  ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"/>

參數說明:keystoreFile 證書路徑。keystorePass 設置證書密碼。ciphers 設置這個參數,避免 chrome 瀏覽器由於安全機制過濾,提示“

8、配置 tomcat 目錄下的 web.xml,添加 ssl 認證,將 http 請求全部需要 ssl 認證:

<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>

9.配置域名

http://www.xxxxx.cn本來就是可以訪問的域名,但是此例中我們用它測試證書,所以不能讓他訪問真實的服務器,我們應該讓他訪問到本機,只有這樣我們安裝到本地JVM的證書才有效,方法如下:

打開 C:/Windows/System32/drivers/etc/hosts,拉到最下面添加:

127.0.0.1 www.xxxxx.cn

10.啟動 tomcat

所有的配置都已完成,現在就讓我們來啟動 tomcat 吧。
輸入:https://www.xxxxx.cn,會提示你該網站的安全證書不受信任,沒錯,這就是為什么讓你到證書提供商購買的原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM