首先使用如下命令生成密鑰庫java
keytool -genkey -alias tomcat -keyalg RSA
我輸入的密鑰口令是123456web
組織單位名稱就是你的域名,個人就是localhostapache
獲得一個.keystore的文件,我把這個文件複製到tomcat的conf文件目錄裏面瀏覽器
在tomcat的server.xml中添加一個connector,代碼以下tomcat
1 <Connector 2 protocol="org.apache.coyote.http11.Http11NioProtocol" 3 port="8443" maxThreads="200" 4 scheme="https" secure="true" SSLEnabled="true" 5 keystoreFile="conf/.keystore" keystorePass="123456" 6 clientAuth="false" sslProtocol="TLS"/>
而後重啓tomcat,在瀏覽器中輸入https://localhost:8443就能看到安全鏈接提示。安全
轉載地址:http://ln-ydc.iteye.com/blog/1330674工具
內容概覽:性能
若是但願 Tomcat 支持 Https,主要的工做是配置 SSL 協議網站
1.生成安全證書加密
2.配置tomcat
---------------------------------------------------------------------------------------------------------------------------
預備知識:
---------------------------------------------------------------------------------------------------------------------------
環境:
1.java 1.6
2.tomcat 6_0_26
---------------------------------------------------------------------------------------------------------------------------
生成安全證書:
1.java環境:由於SUN公司提供了製做證書的工具keytool。
在JDK 1.4之後的版本中都包含了這一工具,它的位置爲<JAVA_HOME>\bin\keytool.exe。
2.建立證書的命令:
參數的意思以下:
這裏密碼我輸的是tomcat,名字與姓氏爲域名,其它的根據具體狀況輸入
以上命令將生產一對非對稱密鑰和自我簽名的證書f:\tomcat.keystore.
將證書保存到你要存放的地方,個人保存在D:\Tools\Web\ssl\tomcat.keystore
注意:「名字與姓氏」應該是域名,輸成了姓名,和真正運行的時候域名不符,會出問題
---------------------------------------------------------------------------------------------------------------------------
配置tomcat:
定位到tomcat的安裝目錄,找到conf下的server.xml文件
找到以下已經被註釋的代碼:
去掉註釋,修改成:
這裏,密碼和證書的位置根據我的的具體環境而設置,屬性參數以下所述:
屬性 | 描述 |
clientAuth | 若是設爲true,表示Tomcat要求全部的SSL客戶出示安全證書,對SSL客戶進行身份驗證 |
keystoreFile | 指定keystore文件的存放位置,能夠指定絕對路徑,也能夠指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變量 的相對路徑。若是此項沒有設定,默認狀況下,Tomcat將從當前操做系統用戶的用戶目錄下讀取名爲「.keystore」的文件。 |
keystorePass | 指定keystore的密碼,若是此項沒有設定,在默認狀況下,Tomcat將使用「changeit」做爲默認密碼。 |
sslProtocol | 指定套接字(Socket)使用的加密/解密協議,默認值爲TLS,用戶不該該修改這個默認值。 |
ciphers | 指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。若是此項沒有設定,在默認狀況下,套接字可使用任意一個可用的密碼。 |
訪問支持ssl的web站點:
啓動本場tomcat,在瀏覽器中輸入:https://localhost:8443/ ,這裏用ie訪問
選擇繼續瀏覽此網站
成功!!
遇到的問題:
我在配置的過程當中問題,當我修改了server.xml的配置後,啓動tomcat報錯
java.lang.Exception: No Certificate file specified or invalid file format
at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method)
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:761)
at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:109)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1123)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
網上找了下,
其實就是將protocol="HTTP/1.1"替換爲protocol="org.apache.coyote.http11.Http11Protocol",問題得以解決;
APR給Tomcat的性能提高起到很大做用,建議配置APR方式,這樣就能夠了