为了给本地tomcat配置https协议,查看了一些基本资料,本地生成证书要是是各大认证机构不认可(参考12306),但是不妨碍本地个人使用。
根据网上资料,用java自带的keytool生成证书,但是第一种无法访问,未找到原因,还是先记录下来。
方案一:
参考链接:http://blog.youkuaiyun.com/jimmy609/article/details/18557955
主要命令:
keytool -genkey -alias tomcat -keyalg RSA -keystore d:/ssl/keys-tools
keytool -export -file d:/ssl/tomcat.crt -alias tomcat -keystore d:/ssl/keys-tools
keytool -import -keystore "D:\Program Files\Java\jre1.8.0_25\lib\security\cacerts" -file D:/ssl/tomcat.crt -alias tomcat
tomcat server.xml配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1"
keystoreFile="D:\ssl\1\keys-tools"
keystorePass="tomcat"
ciphers="tomcat"/>
产生异常(未解决):
javax.net.ssl.sslhandshakeexception:no appropriate protocol
方案二:
参考链接:http://blog.youkuaiyun.com/zhangyong125/article/details/49944683
主要命令:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\ssl\2\tomcat.keystore -validity 36500
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\ssl\2\client.p12
keytool -export -alias client -keystore D:\ssl\2\client.p12 -storetype PKCS12 -storepass tomcat -rfc -file D:\ssl\2\clientforserver.cer
keytool -import -v -file D:\ssl\2\clientforserver.cer -keystore D:\ssl\2\tomcat.keystore
keytool -list -keystore D:\ssl\2\tomcat.keystore
keytool -keystore D:\ssl\2\tomcat.keystore -export -alias tomcat -file D:\ssl\2\CA.cer
tomcat server.xml配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS" keystoreFile="D:\\ssl\\2\\tomcat.keystore"
keystorePass="tomcat" truststoreFile="D:\\ssl\\2\\tomcat.keystore"
truststorePass="tomcat"/>
访问成功。
做个记录,备查