前提條件:已經下載並安裝配置好Tomcat,訪問http://localhost:8080的時候會出現tomcat的界面。html
第一步:配置hosts文件java
添加一行127.0.0.1 codecrazy.cn。這一步不是必要的,只是爲了訪問的時候效果更好(逼格更高)一點。此時就能夠經過http://codecrazy.cn:8080進行訪問了。chrome
第二步:生成證書apache
這裏採用JDK自帶的keytool工具來生成。瀏覽器
如上圖所示,輸入紅框中的命令:tomcat
E:\Java\bin>keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -keypass changeit -validity 365 -keystore e:\sms\tomcat.keystore -storepass changeit
以後須要填寫幾個問題,最後一個問題填入‘y’並回車。安全
執行上述命令以後會在e:\sms下面生成一個tomcat.keystore文件,-keystore選項指定存儲位置和文件名。若是不指定的話會默認在用戶的主目錄下生成一個「.keystore」文件,-storepass指定存儲密碼。 -keypass指定的庫密碼,這2個密碼不須要同樣。
具體keytool的用法請參見:http://www.micmiu.com/lang/java/keytool-start-guide/網絡
注意事項:「您的名字與姓氏是什麼?」這個問題我寫的是「codecrazy.cn」,實踐代表這個地方要填你訪問網站時的域名。我這裏填的是codecrazy.cn。若是沒配置hosts文件,而是經過localhost來訪問網站,那就填localhost。剩下的幾個問題貌似隨便填也沒什麼關係。ide
第三步:生成證書以後再配置tomcat的conf目錄下的server.xml文件工具
<!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the BIO implementation that requires the JSSE style configuration. When using the APR/native implementation, the OpenSSL style configuration is required as described in the APR/native documentation --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="E:\sms\tomcat.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS" />
port=8443這個Connector的配置初始狀況下是註釋掉的,去掉註釋,並添加上述的一些屬性配置。其中keystoreFile填的就是以前用keytool生成的tomcat.keystore文件的路徑,keystorePass就是以前keytool命令中-storepass選項中指定的值。
對於protocol有多種配置方法,如是否啓用apr的方式,不一樣的方式有不一樣的配置,具體能夠參考官方文檔http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
這裏我採用Http11Protocol,它採用的是BIO的方式處理網絡鏈接請求。至於bio,nio,apr三種方式的區別是什麼不在本文討論之列。
而後啓動tomcat,在啓動過程輸出的信息中能夠看到多了一個監聽在8443端口上的鏈接處理器,以下圖所示:
在中間那一行出現了[「http-bio-8443」]這就是用來處理https安全鏈接的處理器的名字。8443表明的是在Connector中port指定的值,能夠配置成其餘的,生產環境中顯然是配置成默認的443端口。」http-bio-8443」中間的「bio」是由於咱們上面配置的是org.apache.coyote.http11.Http11Protocol,它採用的就是bio的方式來處理網絡鏈接請求。(最前面的「http」感受輸出「https」比較合適一點)
此時經過https://codecrazy.cn:8443訪問tomcat仍是沒有創建安全的鏈接,由於瀏覽器中並無安裝證書,https的原理以及如何經過CA認證等不在本文討論之列。本文采用的是一種叫作自簽名證書的方法。
第四步:經過keytool工具來從keystore中導出證書來提供給瀏覽器使用
-keysotre選項指定的就是以前用keytool生成的keystore文件的路徑, -file選項指定的就是導出證書的文件路徑,具體如何使用請參見上文提供的使用keytool工具的連接。命令執行完以後就會在e:\sms\目錄下面生成一個tomcat.crt的文件。
第五步:將該文件導入到瀏覽器中
不一樣的瀏覽器會有略有差異。對於chrome瀏覽器來講,在地址欄輸入chrome://settings/進入設置界面,再點擊最下面的「顯示高級設置」而後往下找到
點擊「管理證書」,*切換到以下圖紅框所示「受信任的根證書頒發機構」* tab頁
點擊導入,再點擊下一步,選擇「瀏覽」找到咱們上面生成的tomcat.crt文件,而後一路「下一步」,最後完成。
至此大功告成。輸入https://codecrazy.cn:8443便可創建https鏈接。效果以下所示:
地址欄https前面再也不是紅叉了,而是變成了綠色的,說明已經創建了安全鏈接。整個過程當中有任何疑問,歡迎留言討論。