1. 程式人生 > >Linux下centos7+apache tomcat 7 配置專案只輸入IP即登陸到專案並且強制啟用Https的配置方法

Linux下centos7+apache tomcat 7 配置專案只輸入IP即登陸到專案並且強制啟用Https的配置方法

  • 生成可用的keystore

  •  在windows下,開啟cmd命令列,執行keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcatSSL.keystore命令,其中-alias後面的引數是你keystore的別名,-keystore後面是你keystore的生成位置,這兩個可以自行配置。生成後講keystore檔案匯入centos下的tomcat安裝的目錄下的conf,可以存放到任意位置,第二步中的引數有相關配置,如果進行了自定義請記得修改。
  • 修改相關配置檔案

    • %tomcat%/conf/server.xml

這個檔案需要修改的是

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"   redirectPort="8443" />

改成如下:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"   redirectPort="443" />

這條中的port由8080改為了80,80是ip輸入後預設的埠,能夠使講直接輸入的ip引導至tomcat服務中。


然後是這一條,這一條原本是被註釋掉的,注意釋放出來再進行更改:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 

SSLEnabled="true"   maxThreads="150" scheme="https" secure="true"   clientAuth="false" 

sslProtocol="TLS" /> 

        改成如下:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" 
SSLEnabled="true"   maxThreads="150" scheme="https" secure="true"   
clientAuth="false" sslProtocol="TLS" keystoreFile="conf/tomcatSSL.keystore" keystorePass="123456" /> 
keystoreFile="conf/tomcatSSL.keystore" keystorePass="123456"

這兩個引數根據你自定義的keystore名字和存放位置及密碼的不同自行進行修改


 最後:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

改為:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

然後儲存。


  • %tomcat%/conf/web.xml

    在檔案尾部<welcome-file-list>標籤結束後加入如下程式碼:
     <login-config>  
    	    <auth-method>CLIENT-CERT</auth-method>  
    	    <realm-name>Client Cert Users-only Area</realm-name>  
    	</login-config>  
    	<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>  

    這段程式碼可以使tomcat強制使用https進行登入,如果不需要可以不用改


最後把你的war包名字改為ROOT,並刪除%tomcat%/webapps下的ROOT資料夾,啟動tomcat,整體功能就完成了。訪問專案時會出現不被信任的證書,那是因為你放在conf下的證書是你自己生成的,沒有被認證,如果要認證需要到有資質的中心進行認證。如果出現了invaild keystore format ,是因為你keystore的格式無法解析,在生成完keystore的時候,cmd會提示讓你使用另一個命令切換RSA格式到貧pkcs12,不要切換,切換後就會出現前面的異常。