windows+tomcat+https(免費證書)
阿新 • • 發佈:2019-01-22
方法一:使用JAVA自帶的keytool生成證書,但是該方法生成的證書不是有效證書,不被瀏覽器信任,如果是被信任的站點,瀏覽器左側會有個綠色的圖示,但是這種方法簡單,本地就可以輕鬆測試。
要想使用https,首先,我們需要有SSL證書,證書可以通過兩個渠道獲得:
- 公開可信認證機構
例如CA,但是申請一般是收費的,一般幾百到幾千一年. - 自己生成
雖然安全性不是那麼高,但勝在成本低. - 目前證書有以下常用檔案格式:JKS(.keystore),微軟(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式.這裡用JKS做示例
- 生成JKS證書
- 開啟命令列輸入keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore E:\testKey\test.keystore
- alias: 別名 這裡起名testKey
keyalg: 證書演算法,RSA
validity:證書有效時間,10年
keystore:證書生成的目標路徑和檔名,替換成你自己的路徑即可,我定義的是E:\testKey\test.keystore
回車,然後會讓你輸入一些資訊,其中祕鑰庫口令和祕要口令最好輸入同一個,並且記下這個口令,(配置tomcat會用到該口令)其他的可隨意填 - Tomcat配置Https
- 開啟tomcat下的conf目錄下的server.xml檔案,搜尋https即可定位到相應的元件,完整的配置如下:
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路徑" keystorePass="生成證書時的口令" /> - 網址輸入https://127.0.0.1:8443可正常訪問,但是會發現http://127.0.0.1:8080也可以正常訪問但是並沒有跳轉到https協議,這裡我們做如下配置
在web.xml末尾加上如下配置:
<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>然後我們訪問Http埠時就會跳轉到https協議埠
方法二,見後續文章