命令如下
CMD管理员身份运行
进入tomcat7的目录
新建密钥对
Keytool -genkey -alias tomcat_a -keyalg RSA -storepass changeit -keystore server.keystore -validity 7
除了姓氏 填入localhost 其他全部是直接回车
第一步是导出证书,
Keytool -export -trustcacerts -alias tomcat_a -file server.cer -keystore server.keystore -storepass changeit
第二步是导入到证书信任库
Keytool -import -trustcacerts -alias tomcat_a -file server.cer -keystore C:/"Program Files"/Java/jdk1.7.0_67/jre/lib/security/cacerts -storepass changeit
以上命令全部执行成功
其中秘钥库口令写在命令中是:changeit
秘钥口令直接回车与秘钥库口令相同也是:changeit
文件也有了。
配置tomcat 的server.xml
添加:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:/apache-tomcat-7.0.77-ssl/server.keystore"
truststoreFile="C:/Program Files/Java/jdk1.7.0_67/jre/lib/security/cacerts"
keystorePass="changeit"
/>
之后启动tomcat报错:
放大:
Caused by: java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:328)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:138)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:55)
at java.security.KeyStore.getKey(KeyStore.java:1011)
at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:133)
at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:70)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:645)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:574)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:495)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:715)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:452)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
... 13 more
请问怎么解决?
已经解决,我电脑里安装了两个版本的JDK。
JDK7和JDK8
系统环境变量里配置的是8,
7是用来给eclispe中添加开发环境用的。
这里SSL命令里设置JDK的以及问题中tomcat的server.xml 中配置的都是JDK7,都改成JDK8就可以了。
现在报了另外一个错误(学习 http://blog.csdn.net/xuxuchuan/article/details/54924933#reply)配置cas3.5.2:
java.io.FileNotFoundException:D:\cas-chenjie\cas.properties(系统找不到指定的文件。)>
上面错误解决,因为tomcat的原因,重新解压一份新的tomcat,将证书复制进去,将server.xml配置项复制进去,放入cas.war即可
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。