HTTP與HTTPS的區別:HTTP協議傳輸的數據都是未加密的,也就是明文的,所以使用HTTP協議傳輸隱私信息很是不安全,爲了保證這些隱私數據能加密傳輸,因而網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來講,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。java
小程序訪問的域名配置必須是配置ssl證書的合法域名,如今阿里雲上買了個域名,備案過了,也申請了免費的ssl 證書,下載了tomcat的證書文件。下面是記錄配置過程:web
下載的證書文件,解壓後是這個樣子:只有兩個文件的,一個是pfx格式的證書,一個是密碼文本。apache
1、使用java jdk將PFX格式證書轉換爲JKS格式證書小程序
在命令行界面輸入如下代碼:vim
1.切換到證書解壓文件 的路徑:tomcat
pushd F:\1569577_wwwXXXX_tomcat安全
(這是個人文件路徑)網絡
2.使用命令:dom
keytool -importkeystore -srckeystore 你的證書名稱.pfx -destkeystore domains.jks -srcstoretype PKCS12 -deststoretype JKS工具
domains.jks是生成的jks格式證書名稱。
回車,會提示你輸入三次密碼,建議三次都是輸入密碼文本的密碼,成功後會再文件夾下生成domains.jks文件
命裏行界面截圖:
2、配置server.xml
先把domains.jks證書上傳到服務上的Tomcat的conf文件夾下,我用的是FlashFXP工具上傳。
切換到conf目錄下編輯server.xml (Linux命令)
找到:
修改爲如下代碼:(443爲https默認訪問端口)
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/domains.jks"
keystorePass="80ISkH7c" //證書密鑰 ,密碼文本那個
clientAuth="false" sslProtocol="TLS" />
爲了讓http訪問自動跳轉爲https訪問,這裏順便把這兩個標籤也改了,
注意:若最後啓動tomcat時候報:Catalina.start using conf/server.xml: Element type "Connector" must be followed by either attribute ,請注意不要分行,每一個屬性間隔一個空格保存就好。本人遇到事這樣解決的。
找到:
改爲:
找到:
改爲:
保存,退出。
3、配置web.xml
編輯web.xml
在該文件</welcome-file-list>標籤(通常在文件最末尾)後面加上這樣一段:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
保存,退出,重啓tomcat.
測試:成功