超文本傳輸協定HTTP協定被用于在Web浏覽器和網站伺服器之間傳遞資訊。HTTP協定以明文方式發送内容,不提供任何方式的資料加密,如果攻擊者截取了Web浏覽器和網站伺服器之間的傳輸封包,就可以直接讀懂其中的資訊,是以HTTP協定不适合傳輸一些敏感資訊,比如信用卡号、密碼等。
為了解決HTTP協定的這一缺陷,需要使用另一種協定:安全套接字層超文本傳輸協定HTTPS。為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協定,SSL依靠證書來驗證伺服器的身份,并為浏覽器和伺服器之間的通信加密。
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),用于安全的傳輸HTTP資料。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIx0Te6FGbfh3dmUTPt9mcmh3dmAnYldXPwRnJnVGcq1DdtZ2X4d3PwQjNvw1ZqRjWWNWaLNWaNdlTyJndxBFT5UjR1UHVnNmMxcWS2pURjFDUaFTOIF1MzcVSNlDemdUcnplTNxUeQxmTnBlQFZzR3NDV5k0Rjl2ZLZDcQZ2U2M2ShNVd09CXnBnafpXai1Wbvwlbj5yYpBXcuoXai1Wbvw1LcpDc0RHaiojIsJye.jpg)
是以,今天來聊一聊關于tomcat(8.5.9)的HTTPS配置步驟
安裝JDK環境
安裝JDK8
<code>tar</code> <code>zxf jdk-8u111-linux-x64.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>export</code> <code>JAVA_HOME=</code><code>/usr/local/jdk1</code><code>.8.0_111</code>
<code>export</code> <code>CLASSPATH=.:$JAVA_HOME</code><code>/lib/dt</code><code>.jar:$JAVA_HOME</code><code>/lib/tools</code><code>.jar</code>
<code>export</code> <code>PATH=$JAVA_HOME</code><code>/bin</code><code>:$PATH</code>
<code>source</code> <code>/etc/profile</code>
檢查JAVA環境是否安裝完成
<code>[root@centos ~]</code><code># java -version</code>
<code>java version </code><code>"1.8.0_111"</code>
<code>Java(TM) SE Runtime Environment (build 1.8.0_111-b14)</code>
<code>Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)</code>
安裝Tomcat-8.5.9
安裝Tomcat
<code>tar</code> <code>zxf apache-tomcat-8.5.9.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>export</code> <code>CATALINA_HOME=</code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code>
啟動Tomcat服務
<code>[root@centos ~]</code><code>#/usr/local/apache-tomcat-8.5.9/bin/startup.sh</code>
<code>Using CATALINA_BASE: </code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code>
<code>Using CATALINA_HOME: </code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code>
<code>Using CATALINA_TMPDIR: </code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code><code>/temp</code>
<code>Using JRE_HOME: </code><code>/usr/local/jdk1</code><code>.8.0_111</code>
<code>Using CLASSPATH: </code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code><code>/bin/bootstrap</code><code>.jar:</code><code>/usr/local/apache-tomcat-8</code><code>.5.9</code><code>/bin/tomcat-juli</code><code>.jar</code>
<code>Tomcat started.</code>
<code>[root@centos ~]</code><code># netstat -lntup|grep java</code>
<code>tcp 0 0 ::127.0.0.1:8005 :::* LISTEN 4681</code><code>/java</code>
<code>tcp 0 0 :::8009 :::* LISTEN 3983</code><code>/java</code>
<code>tcp 0 0 :::8080 :::* LISTEN 4681</code><code>/java</code>
浏覽器通過HTTP通路
利用JAVA自帶工具keytool生成證書
<code>[root@mingongge ~]</code><code># keytool -genkey -alias tomcat8 -keyalg RSA -keystore /usr/local/keystore</code>
<code>Enter keystore password: </code>
<code>Re-enter new password: 輸入密碼,不顯示</code>
<code>What is your first and last name?</code>
<code> </code><code>[Unknown]: mingongge 輸入你的名字</code>
<code>What is the name of your organizational unit?</code>
<code> </code><code>[Unknown]: mingongge.com 輸入組織機關名稱</code>
<code>What is the name of your organization?</code>
<code> </code><code>[Unknown]: mingongge.com 輸入組織名稱</code>
<code>What is the name of your City or Locality?</code>
<code> </code><code>[Unknown]: hefei 輸入你的城市</code>
<code>What is the name of your State or Province?</code>
<code> </code><code>[Unknown]: anhui 輸入你的省</code>
<code>What is the two-letter country code </code><code>for</code> <code>this unit?</code>
<code> </code><code>[Unknown]: CN 輸入國家</code>
<code>Is CN=mingongge, OU=mingongge.com, O=mingogge.com, L=hefei, ST=anhui, C=CN correct?</code>
<code> </code><code>[no]: y 确認配置</code>
<code>Enter key password </code><code>for</code> <code><tomcat8></code>
<code> </code><code>(RETURN </code><code>if</code> <code>same as keystore password):</code>
如果與前面相同直接回車,也可自定義
keytool指令如下:
-genkey
建立檔案,檔案中包含使用者的公鑰、私鑰和證書
-alias 産生别名
-keystore 指定密鑰庫的名稱
-keyalg 指定密鑰的算法
-validity 指定建立的證書有效期多少天
-keysize 指定密鑰長度
-storepass 指定密鑰庫的密碼
-keypass 指定别名條目的密碼
配置Tomcat
修改Tomcat配置檔案
<code>cd</code> <code>/usr/local/apache-tomcat-8</code><code>.5.9</code><code>/conf/</code>
<code>cp</code> <code>server.xml server.xml.$(</code><code>date</code> <code>+%F)</code>
<code>vim server.xml</code>
<code><Connector port=</code><code>"8443"</code> <code>protocol=</code><code>"org.apache.coyote.http11.Http11NioProtocol"</code>
<code> </code><code>maxThreads=</code><code>"150"</code> <code>SSLEnabled=</code><code>"true"</code><code>></code>
<code><SSLHostConfig></code>
<code> </code><code><Certificate certificateKeystoreFile=</code><code>"/usr/local/kestore"</code>
<code> </code><code>certificateKeystorePassword=</code><code>"123456"</code>
<code> </code><code>type</code><code>=</code><code>"RSA"</code> <code>/></code>
<code> </code><code><</code><code>/SSLHostConfig</code><code>></code>
<code><</code><code>/Connector</code><code>></code>
重新開機服務
<code>[root@centos conf]</code><code># ../bin/shutdown.sh</code>
<code>[root@centos conf]</code><code># ../bin/startup.sh</code>
<code>[root@mingongge conf]</code><code># netstat -lntup|grep java</code>
<code>tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 12508</code><code>/java</code>
通過HTTPS協定通路
浏覽器輸入https://106.14.200.183:8443
因為是自生成的證書,是以才會出現上述證書安全有問題,點選繼續浏覽此網站即可
可能會有的小夥伴會說,https協定預設端口是443,你這是8443完全不一樣,其實你錯了,無非是個端口而已,是以回頭将配置檔案裡的Connector port="8443"修改成如下
Connector port="443"
然後重新開機tomcat服務再測試通路
<code>tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12508</code><code>/java</code>
<code>tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 12508</code><code>/java</code>
兩次的效果是完全一樣,可以看出tomcat的https協定配置完成
本文轉自 藍葉子Sheep 51CTO部落格,原文連結:http://blog.51cto.com/dellinger/1948058,如需轉載請自行聯系原作者