Tomcat配置ssl及導入機構證書
測試可以使用1.生成證書,實際使用2.導入證書
1. 生成證書
Jdk目錄下,生成證書文件c:\tomcat.keystore
keytool-genkeypair -alias "tomcat" -keyalg "RSA" -keystore"c:\tomcat.keystore"
說明:跟進提示輸入對應信息,
注意:“名字与姓氏”应该是域名,如果是測試本機輸入localhost,和真正运行的时候域名不符,会出问题
2. 導入證書
https://www.dynamic-service.com.hk:8443/D_ServiceNet/admin
說明:過程中會要求輸入密碼,該密碼為你申請證書時,生成XX.csr時輸入的密碼,在openssl根目錄下運行,把相關文件(機構提供的證書和myserver.key)複製到test目錄下,keytool為Java工具,加入系統path中,方便直接輸入命令。
最後獲得的tomcat.keystore為最終文件,
3.1導入信任證書鏈:一般會機構提供(例子rootca.cer,ca15.cer)
keytool -import -alias root -keystoretest/tomcat.keystore -trustcacerts -file test/rootca.cer
keytool -import -alias sub -keystoretest/tomcat.keystore -trustcacerts -file test/ca15.cer
3.2把機構提供的非base64格式,一般是二進制格式的,轉換成pkcs12格式的證書,如果是base64格式的,則不需要轉換
openssl pkcs12 -export -cacerts -inkey test/myserver.key -intest/dynamic.cer -out test/dy01.p12
3.3 導入\dynamic的證書
如果做了3.2步驟,則使用A,否則使用B
A. keytool -importkeystore -destkeystore test/tomcat.keystore-srckeystore test/dy01.p12 -srcstoretype pkcs12
B. keytool -import -alias tomcat -keystoretest/tomcat.keystore -file test/dynamic.cer
查看證書內容:
keytool -list -keystore test/dy01.p12-storetype pkcs12 -v
(-v -rpc 2種不同顯示格式,只能選一個)
3. 配置tomcat
A.server.xml
<Connector port="8443"protocol="org.apache.coyote.http11.Http11NioProtocol"SSLEnabled="true"
maxThreads="150"scheme="https" secure="true"
clientAuth="false"sslProtocol="TLS"
keystoreFile="C:\apache-tomcat-6.0.45\conf\tomcat.keystore"
keystorePass="tomcat"/>
属性 描述
clientAuth 如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
keystorePass 指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码
sslProtocol 指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers 指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。