keytool生成新的证书,实现双向认证,必须重启tomcat才能生效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keytool生成新的证书,实现双向认证,必须重启tomcat才能生效相关的知识,希望对你有一定的参考价值。
我用keytool生成证书。具体步骤如下:
1 生成tomcat.keystore文件
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ca/tomcat.keystore
2 生成客户端证书 zhangsan.p12
keytool -genkey -v -alias zhangsan -keyalg RSA -storetype PKCS12 -keystore /usr/local/ca/client/zhangsan.p12
3 生成zhangsan.cer 并导入到tomcat.keystore中
keytool -export -alias zhangsan-keystore /usr/local/ca/client/zhangsan.p12 -storetype PKCS12 -storepass zhang123456 -rfc -file /usr/local/ca/CER/zhangsan.cer
keytool -import -alias zhangsan-v -file /usr/local/ca/CER/zhangsan.cer -keystore /usr/local/ca/tomcat.keystore -storepass 123456
4 修改 tomcat的配置文件server.xml。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="/usr/local/ca/tomcat.keystore" keystorePass="123456"
truststoreFile="C:/usr/local/ca/tomcat.keystoretruststorePass="123456" />
这就完成了,然后我把zhangsan.p12安装到IE中。重启TOMCAT,用https访问TOMCAT的时候就让我选证书,里面有zhangsan。 到现在一切都正常。
然后问题来了。我需要再生成一个客户端证书,重复上面的步骤2和3.生成了lisi.p12,并导入到tomcat.keystore中。然后我在IE中安装了lisi.p12 这个证书。访问https的时候,弹出的可选证书中就没有lisi.只有刚才的zhangsan. 但是我如果重启一下tomcat,再访问的时候,就可以选lisi了。
这问题怎么解决呢? 不可能我每次生成新的证书都要重启一下tomcat吧!
这个问题搞了好几天了。。真心求教啊。。。
看来是没人知道了。
我用openssl解决了~
为什么呀。我记得以前用过一个系统。就是只要新建一个用户,后台自动生成这个用户的证书,下载下来安装之后就能登录系统了。后台系统也没有重启呀。
本回答被提问者采纳 参考技术B 楼主,请问你解决了吗?现在我也是这个问题,没找到相关的资料。。Tomcat配置HTTPS方式生成安全证书
原文:http://www.cnblogs.com/visec479/p/4152827.html
Tomcat 6.0.16
启动命令行:
第一步:为服务器生成证书
如果Tomcat所在服务器的域名不是“localhost”,应改为对应的域名,如[url]www.baidu.com[/url] 或者IP地址,否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。
第二步:为客户端生成证书
对应的证书库存放在“D:/downloads/p12/tianli.p12”,客户端的CN可以是任意值。
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令:
通过以上命令,客户端证书就被我们导出到“D:/downloads/cert/tianli.cer r”文件了。下一步,是将该文件导入到服务器的证书库,添加为一个信任证书:
通过list命令查看服务器的证书库,我们可以看到两个输入,一个是服务器证书,一个是受信任的客户端证书:
第四步:配置Tomcat服务器
打开Tomcat根目录下的/conf/server.xml,找到如下配置段,修改如下:
打开注释
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile=" D:/downloads/tomcat.keystore " keystorePass="logiscn "
truststoreFile=" D:/downloads/tomcat.keystore " truststorePass="logiscn "
/>
其中,clientAuth指定是否需要验证客户端证书,如果该设置为“false”,则为单向SSL验证,SSL配置可到此结束。如果clientAuth设置为“true”,表示强制双向SSL验证,必须验证客户端证书。如果clientAuth设置为“want”,则表示可以验证客户端证书,但如果客户端没有有效证书,也不强制验证。
如果设置了clientAuth="true",则需要强制验证客户端证书。双击“D:/downloads/p12/tianli.p12”即可将证书导入至IE:导入证书后,即可启动Tomcat,用IE进行访问。输入[url]https://IPAdress/[/url] ,https协议默认的访问端口为443。以上所写大都为借鉴网上的资料。
以上是关于keytool生成新的证书,实现双向认证,必须重启tomcat才能生效的主要内容,如果未能解决你的问题,请参考以下文章