天天看點

配置Tomcat使用https協定(單向認證)

   超文本傳輸協定HTTP協定被用于在Web浏覽器和網站伺服器之間傳遞資訊。HTTP協定以明文方式發送内容,不提供任何方式的資料加密,如果攻擊者截取了Web浏覽器和網站伺服器之間的傳輸封包,就可以直接讀懂其中的資訊,是以HTTP協定不适合傳輸一些敏感資訊,比如信用卡号、密碼等。

   為了解決HTTP協定的這一缺陷,需要使用另一種協定:安全套接字層超文本傳輸協定HTTPS。為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協定,SSL依靠證書來驗證伺服器的身份,并為浏覽器和伺服器之間的通信加密。

    HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),用于安全的傳輸HTTP資料。

配置Tomcat使用https協定(單向認證)

是以,今天來聊一聊關于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使用https協定(單向認證)

安裝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通路

配置Tomcat使用https協定(單向認證)
配置Tomcat使用https協定(單向認證)

利用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>&lt;tomcat8&gt;</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使用https協定(單向認證)

配置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>&lt;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>&gt;</code>

<code>&lt;SSLHostConfig&gt;</code>

<code> </code><code>&lt;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>/&gt;</code>

<code>  </code><code>&lt;</code><code>/SSLHostConfig</code><code>&gt;</code>

<code>&lt;</code><code>/Connector</code><code>&gt;</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>

配置Tomcat使用https協定(單向認證)

通過HTTPS協定通路

浏覽器輸入https://106.14.200.183:8443

配置Tomcat使用https協定(單向認證)

因為是自生成的證書,是以才會出現上述證書安全有問題,點選繼續浏覽此網站即可

配置Tomcat使用https協定(單向認證)

可能會有的小夥伴會說,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協定(單向認證)

兩次的效果是完全一樣,可以看出tomcat的https協定配置完成

本文轉自 藍葉子Sheep 51CTO部落格,原文連結:http://blog.51cto.com/dellinger/1948058,如需轉載請自行聯系原作者