tomcat配置https

在tomcat中配置https一般會遇到兩種情況:

情況一:內網中使用keytool命令生成後綴名爲.keystore形式的證書;

情況二:到外網CA服務商申請證書,CA服務商發回的證書內,包含不同的服務器應用程序(例如nginx、apache)對應的證書。其中申請時會要設置密碼,這個密碼配置tomcat時需要用到。

針對tomcat需要使用到.jks後綴名的證書。

情況一配置方法:

方法如下:

  1. 命令行執行keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/https.keystore -keypass tomcat -storepass tomcat

-genkey 創建一個新的密鑰

-alias 設置此證書的別名

-keyalg 指定密鑰的算法

-storepass 指定訪問存取的密碼(如不在命令行中加上,那麼命令剛執行就會提示輸入密碼)

-keypass 指定密鑰庫的密碼(如不在命令行中加上,那麼命令結束執行就會提示輸入密碼)

此兩項設置相同較好

執行過程中會詢問你一些信息,比如國家代碼,省市等

2.打開conf目錄下的server.xml文件,找到以下這一段

<!--

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

     maxThreads="150" scheme="https" secure="true"

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

-->

它被註釋掉了,將註釋去掉,並將這一段改成以下

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

     maxThreads="150" scheme="https" secure="true"

     clientAuth="false" sslProtocol="TLS"

     keystoreFile="/usr/local/tomcat/https.keystore" keystorePass="tomcat"/>

註釋:keystorePass爲證書的密鑰庫密碼

3.之後啓動tomcat就可以了,通過https方式訪問8443端口,就能看到效果。如果用http訪問之前的端口,那麼還是普通的未加密連接,若要使得訪問http時強制跳轉到到https。

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

  1. <login-config>    

  2.     <!-- Authorization setting for SSL -->    

  3.     <auth-method>CLIENT-CERT</auth-method>    

  4.     <realm-name>Client Cert Users-only Area</realm-name>    

  5. </login-config>    

  6. <security-constraint>    

  7.     <!-- Authorization setting for SSL -->    

  8.     <web-resource-collection >    

  9.         <web-resource-name >SSL</web-resource-name>    

  10.         <url-pattern>/*</url-pattern>    

  11.     </web-resource-collection>    

  12.     <user-data-constraint>    

  13.         <transport-guarantee>CONFIDENTIAL</transport-guarantee>    

  14.     </user-data-constraint>    

  15. </security-constraint>    


4.重啓tomcat,現在你放問原來的地址,假設是http://localhost:8080/mywebapp/,可以看到,連接被重定向到了https的連接https://localhost:8443/mywebapp/。這樣,我們的目的達到了。

情況二配置方法:

1.將.jks後綴名的證書文件放到某一目錄下,此次假設是/usr/local/tomcat,證書文件爲www.test.com.jks,證書密碼爲test

2.打開conf目錄下的server.xml文件,找到以下這一段

<!--

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

     maxThreads="150" scheme="https" secure="true"

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

-->

它被註釋掉了,將註釋去掉,並將這一段改成以下

<Connector port="8888" protocol="HTTP/1.1" SSLEnabled="true"
     maxThreads="150" scheme="https" secure="true" 
     clientAuth="false" sslProtocol="TLS"
     keystoreFile="/usr/local/tomcat/www.test.com.jks" keystorePass="test"  />

參考網址:
http://www.blogjava.net/jjshcc/archive/2013/06/20/400769.html
http://blog.sina.com.cn/s/blog_64a52f2a0101g35m.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章