天天看點

tomcat配置https伺服器

隻使用步驟1和4的話僅服務端認證

1.為tomcat生成證書,别名tomcat

keytool -genkey -v -alias tomcat -keyalg rsa -keystore d:\home\tomcat.keystore -validity 36500   (機關天)

您的名字與姓氏是什麼?”這是必填項,并且必須是tomcat部署主機的域名或者ip[如:gbcom.com 或者 10.1.25.251](就是你将來要在浏覽器中輸入的通路位址),否則浏覽器會彈出警告視窗,提示使用者證書與所在域不比對。在本地做開發測試時,應填入“localhost”。

2.為用戶端生成證書并導入浏覽器

了能将證書順利導入至ie和firefox,證書格式應該是pkcs12

keytool -genkey -v -alias mykey -keyalg rsa -storetype pkcs12 -keystore d:\home\mykey.p12

輕按兩下mykey.p12檔案,即可将證書導入至浏覽器(用戶端)

3.讓伺服器信任用戶端證書

由于不能直接将pkcs12格式的證書庫導入,必須先把用戶端證書導出為一個單獨的cer檔案,使用如下指令:

keytool -export -alias mykey -keystore d:\home\mykey.p12 -storetype pkcs12 -storepass 123456 -rfc -file d:\home\mykey.cer (mykey為自定義與用戶端定義的mykey要一緻)

用戶端證書就被我們導出到“d:\home\mykey.cer”檔案了

下一步,是将該檔案導入到伺服器的證書庫,添加為一個信任證書使用指令如下:

keytool -import -v -file d:\home\mykey.cer -keystore d:\home\tomcat.keystore

通過list指令檢視伺服器的證書庫,可以看到兩個證書,一個是伺服器證書,一個是受信任的用戶端證書:

keytool -list -keystore d:\home\tomcat.keystore

顯示結果如下:

您的密鑰庫包含 2 個條目

tomcat, 2016-7-20, privatekeyentry,

證書指紋 (sha1): 55:69:06:a0:64:af:7c:58:ca:63:88:d2:30:b9:2b:64:cd:1c:65:4b

mykey, 2016-7-20, trustedcertentry,

證書指紋 (sha1): 9d:84:35:f0:f6:31:96:02:9e:9e:4d:7a:19:11:78:87:84:8a:e8:9f

4.讓用戶端信任伺服器證書

先把伺服器證書導出為一個單獨的cer檔案,使用如下指令:

keytool -keystore d:\home\tomcat.keystore -export -alias tomcat -file d:\home\tomcat.cer (tomcat為你設定伺服器端的證書名)。

輕按兩下tomcat.cer檔案,按照提示安裝證書,将證書安裝到“受信任的根證書頒發機構”存儲區

5.配置tomcat伺服器

下面是單向認證(伺服器端認證)配置

打開tomcat根目錄下的/conf/server.xml,找到connector port="8443"配置段,修改為如下:

<connector port="8443" protocol="org.apache.coyote.http11.http11protocol"

sslenabled="true" maxthreads="150" scheme="https"

secure="true" clientauth="false" sslprotocol="tls"

keystorefile="d:\\home\\tomcat.keystore" keystorepass="123456"/>

參數說明:

clientauth:設定是否雙向驗證,預設為false(僅服務端認證),設定為true代表雙向驗證

keystorefile:伺服器證書檔案路徑

keystorepass:伺服器證書密碼

truststorefile:用來驗證用戶端證書的根證書,此例中就是伺服器證書

truststorepass:根證書密碼

https通路的時候需要帶上端口号8443

--------------------tomcat配置https通路不需要端口号------------------

一般tomcat預設的ssl端口号是8443,但是對于ssl标準端口号是443,這樣在通路網頁的時候,直接使用https而不需要輸入端口号就可以通路

1. 将non-ssl http/1.1 connector中的redirectport端口号改為:443

2. ssl http/1.1 connector修改端口号為443

3. ajp 1.3 connector  中的 redirectport改為443

-------------------強制使用https-------------------------

tomcat /conf/web.xml 中</welcome- file-list> 後面加上這

<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>    

    <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>

繼續閱讀