about 3 years ago

TLS好像越來越多人用了,沒在Tomcat上設定過所以紀錄一下

先利用keytool來產生所需要的憑證檔

SET PATH=C:\Program Files\Java\jdk1.8.0_05\bin;%PATH%
keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore C:\keytool\keystore.jks -storepass keystore -dname "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"

修改server.xml

server.xml
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" SSLEnabled="true" maxThreads="200"
           scheme="https" secure="true"
           keystoreFile="D:/SimulationServer/apache-tomcat-7.0.53/keystore.jks"
           keystorePass="keystore" clientAuth="false"
           sslProtocol="TLSv1.2" />

重新啟動Tomcat即可

如果需要強制啟用SSL連線

修改web.xml

web.xml
<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

如果Tomcat觸發Could not load org.bouncycastle.jce.provider.symmetric.AES

可能是因為項目內有用到這元件,但是在設定SSL不知道為啥會觸發
可以把bouncycastle設定到Tomcat這樣就不會觸發此問題
修改 jdk1.7.0_55\jre\lib\security\java.security

#新增
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

並將bcprov-jdk16-1.46.jar放到Tomcat下面的lib
就可以了

創用 CC 授權條款本著作由SamZhu製作,以創用CC 姓名標示-相同方式分享 4.0 國際 授權條款釋出。
此作品衍生自http://samchu.logdown.com/
← 在非Spring管理下想取得Spring管理的Bean CentOS 7 安裝 →
 
comments powered by Disqus