阿里雲http配置ssl遇到的坑&&天坑
阿新 • • 發佈:2019-01-08
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跳轉規則,如圖: