开发者社区> 问答> 正文

Tomcat CXF SSL双向认证不通过-浏览器已可正常访问HTTPS-帮忙看看?报错

详细的描述文档在:http://git.oschina.net/huliangdream/wsservices/wikis/home

服务端,客户端代码已上传到Git@OSC

服务端代码:http://git.oschina.net/huliangdream/wsservices.git

客户端代码:http://git.oschina.net/huliangdream/wsclient.git

服务端已部署到服务器:https://112.124.17.226/ws/services/helloWorldFacade?wsdl

将证书browser.p12导入浏览器后已可正常访问(所有证书的密码为123456)

现在通过CXF客户端调用时报错

(错误详细信息在:http://git.oschina.net/huliangdream/wsservices/wikis/home

证书是用java keytool生成的,如下:

1.生成服务端证书
keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:/deve/keys/ssl/tomcat.keystore -dname "CN=112.124.17.226,OU=huliang,O=huliang,L=hangzhou,ST=Zhejiang,C=CN" -validity 3650 -storepass 123456 -keypass 123456
2.导出服务端证书
keytool -export -alias tomcat -keystore C:/deve/keys/ssl/tomcat.keystore -storepass 123456 -rfc -file C:/deve/keys/ssl/tomcat.cer
3.生成客户端证书
keytool -genkey -v -alias client -keyalg RSA -keystore C:/deve/keys/ssl/client.keystore -dname "CN=client,OU=huliang,O=huliang,L=hangzhou,ST=Zhejiang,C=CN" -validity 3650 -storepass 123456 -keypass 123456
4.导出客户端证书
keytool -export -alias client -keystore C:/deve/keys/ssl/client.keystore -storepass 123456 -rfc -file C:/deve/keys/ssl/client.cer
5.把客户端证书加入服务端证书信任列表
keytool -import -file C:/deve/keys/ssl/client.cer -storepass 123456 -keystore C:/deve/keys/ssl/tomcat.truststore -alias client
6.生成客户端信任列表 (客户端信任的服务端)
keytool -import -file C:/deve/keys/ssl/tomcat.cer -storepass 123456 -keystore C:/deve/keys/ssl/client.truststore -alias tomcat
1.浏览器证书(已可正常访问)
keytool -validity 365 -genkeypair -v -alias browser -keyalg RSA -storetype PKCS12 -keystore C:/deve/keys/ssl/browser.p12 -dname "CN=browser,OU=huliang,O=huliang,L=hangzhou,ST=Zhejiang,c=cn" -storepass 123456 -keypass 123456
2、从客户端证书库中导出客户端证书
keytool -export -v -alias browser -keystore C:/deve/keys/ssl/browser.p12 -storetype PKCS12 -storepass 123456 -rfc -file C:/deve/keys/ssl/browser.cer
3、将客户端证书导入到服务器证书库(使得服务器信任客户端证书)
keytool -import -v -alias browser -file C:/deve/keys/ssl/browser.cer -keystore C:/deve/keys/ssl/tomcat.truststore -storepass 123456
keytool -list -keystore C:/deve/keys/ssl/tomcat.truststore -storepass 123456

展开
收起
爱吃鱼的程序员 2020-06-22 17:38:57 1354 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    这位同学为什么 ......,是看出哪配的有问题吗?请明示。。。有人知道吗,指点一下自己顶下,来个人帮忙看看吧。。。有没有服务器端的错误信息?

    感谢您的回答。

    服务端没日志,加了log4j和设置了 System.setProperty("javax.net.debug","all");也没有。。。这正常吗??

     这么多人试我Tomcat服务器的管理密码。。。有空帮帮看看呀。。。

    问题已解决,去掉CXF配置http:conduit中的

    <sec:cipherSuitesFilter>
    <sec:include>.*_EXPORT_.*</sec:include>
    <sec:include>.*_EXPORT1024_.*</sec:include>
    <sec:include>.*_WITH_DES_.*</sec:include>
    <sec:include>.*_WITH_NULL_.*</sec:include>
    <sec:exclude>.*_DH_anon_.*</sec:exclude>
    </sec:cipherSuitesFilter>
    但这是为什么呢?

    另外不用CXF http:conduit配置密钥,通过下面方法也不行

    System.setProperty("javax.net.ssl.trustStore","C:/deve/keys/ssl/client.truststore"); 

        System.setProperty("javax.net.ssl.trustStorePassword","123456");
        System.setProperty("javax.net.ssl.trustStoreType","JKS");
         
        System.setProperty("javax.net.ssl.keyStoreType","PKCS12"); 
        System.setProperty("javax.net.ssl.keyStore","C:/deve/keys/ssl/browser.p12"); 
        System.setProperty("javax.net.ssl.keyStorePassword","123456");
    2020-06-22 17:39:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
CDN助力企业网站进入HTTPS时代 立即下载
WEB浏览器中即将发生的安全变化 立即下载