相較于http,https提供了身份驗證與加密通信方法.于是,出于安全性考慮,越來越多的網(wǎng)站開始使用https協(xié)議.
一、環(huán)境準(zhǔn)備
為了成功配置https,你需要具備以下環(huán)境:
- java jdk
- tomcat
二聂沙、SSL證書簡介
要想使用https,首先,我們需要有SSL證書,證書可以通過兩個渠道獲得:
- 公開可信認(rèn)證機構(gòu)
例如CA,但是申請一般是收費的,一般幾百到幾千一年. - 自己生成
雖然安全性不是那么高,但勝在成本低.
目前證書有以下常用文件格式:JKS(.keystore)秆麸,微軟(.pfx),PEM(.key + .crt)及汉。其中,tomcat使用JKS格式,nginx使用PEM格式.
雖然兩種方式博主都已經(jīng)實現(xiàn)過,但是這里只講JKS格式.
三沮趣、JKS格式證書生成
好了,我們的jdk要派上用場了
- 打開你的終端或者命令行或者其他黑窗口,輸入:
keytool -genkey -v -alias testKey -keyalg RSA -validity 3650 -keystore ~/Lee/test.keystore
- alias: 別名 這里起名testKey
- keyalg: 證書算法,RSA
- validity:證書有效時間坷随,10年
- keystore:證書生成的目標(biāo)路徑和文件名,替換成你自己的路徑即可,我定義的是~/Lee/test.keystore
-
回車,然后會讓你輸入一些信息,其中秘鑰庫口令和秘要口令最好輸入同一個,并且記下這個口令,其他的隨便填即可
- 在你剛才的目標(biāo)路徑里拿到生成好的test.keystore.
四房铭、tomcat配置https
- 把keystore證書上傳到你的tomcat服務(wù)器上(如果你的tomcat在本地,那么不移動也可以),并記下證書所在路徑.
-
cd到tomcat的conf目錄下,打開server.xml文件,搜索https找到下面這項:
- 先去掉注釋,然后將keystoreFile和keystorePass處替換成你自己的證書路徑和生成證書時的口令即可.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="你的keystore路徑" keystorePass="生成證書時的口令" />
- port: https的端口,默認(rèn)8443
- clientAuth:設(shè)置是否雙向驗證,默認(rèn)為false温眉,設(shè)置為true代表雙向驗證keystoreFile
- keystoreFile: keystore證書的路徑
- keystorePass: 生成keystore時的口令
- 啟動tomcat,然后就可以使用https和8443端口訪問你的服務(wù)了! _