1. 程式人生 > >阿里雲http配置ssl遇到的坑&&天坑

阿里雲http配置ssl遇到的坑&&天坑

1、在Tomcat的安裝目錄下建立cert目錄,並且將阿里雲提供的ssl全套壓縮包全部檔案拷貝到cert目錄中。

2、使用java jdk將PFX格式證書轉換為JKS格式證書(windows環境注意在%JAVA_HOME%/jdk/bin目錄下執行)

keytool -importkeystore -srckeystore `path1:\`1537052282618.pfx -destkeystore `path2:\`your-name.jks -srcstoretype PKCS12 -deststoretype JKS

回車後輸入JKS證書密碼和PFX證書密碼,強烈推薦將JKS密碼與PFX證書密碼相同,否則可能會導致Tomcat啟動失敗。

這裡有個小坑,path1,請填寫pfx的絕對路徑,path2填寫匯出的絕對路徑,否則 Java IO NotFound

3、把生成的path2:\路徑裡面的your-name.jks放到第一步新建的cert資料夾下,改<Connector port="8443"的配置,原來的應該是被註釋了,8443改成443因為https預設埠443

<Connector port="443" 
    protocol="HTTP/1.1" 
    SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
keystoreFile="cert\your-name.jks" keystorePass="123456" clientAuth="false" sslProtocol="TLS" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"
/>

4、找到專案web.xml。也就是</web-app> 前面,加上這樣一段:

<!-- http預設跳轉https-->
<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>

5、繼續改

<!--預設80埠,也跳轉443-->
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

6、接著改

<!-- 無腦443 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

7、開心的開啟瀏覽器:https//www.xxx.com訪問,這裡你可能會發現無法訪問,天坑就在這裡

請確保你的阿里雲實例的安全住添加了443跳轉規則,如圖:

這裡寫圖片描述