请教: Axis客户端调用https web service的问题
我用axis做客户端访问web service, http的没有问题, 服务器端切换到https出现问题, 这个在意料之中, 查阅一些技术文章做了如下改动:
1. 拿到server端的证书(一个基于base64的cer文件)
2. 用keytool导入证书到本地
还没走到下面, 导入就出错了. 我的命令为:
keytool -import -file abc.cer -keystore mykeystore -storepass 111111
错误为: keytool错误: java.lang.Exception: 所输入的不是一个 X.509 认证
运行 keytool -printcert -file abc.cer也出错:
sun.security.pkcs.ParsingException: X509.ObjectIdentifier() -- data isn't an obj
ect ID (tag = 48)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:118)
at sun.security.pkcs.PKCS7.<init>(PKCS7.java:68)
at sun.security.provider.X509Factory.parseX509orPKCS7Cert(X509Factory.ja
va:530)
at sun.security.provider.X509Factory.engineGenerateCertificates(X509Fact
ory.java:407)
at java.security.cert.CertificateFactory.generateCertificates(Certificat
eFactory.java:511)
at sun.security.tools.KeyTool.doPrintCert(KeyTool.java:1021)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:539)
at sun.security.tools.KeyTool.run(KeyTool.java:124)
at sun.security.tools.KeyTool.main(KeyTool.java:118)
Caused by: java.io.IOException: X509.ObjectIdentifier() -- data isn't an object
ID (tag = 48)
at sun.security.util.ObjectIdentifier.<init>(ObjectIdentifier.java:134)
at sun.security.util.DerInputStream.getOID(DerInputStream.java:250)
at sun.security.pkcs.ContentInfo.<init>(ContentInfo.java:120)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:136)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:115)
... 8 more
keytool错误: java.lang.Exception: 无法对输入进行语法分析
服务器证书是在iis中用windows 2003 server的CA生成的. 然后我尝试用keytool产生证书给server用,但server无法导入
有几个问题:
1. iis的证书如何用keytool导入本地?
2. java产生的SSL证书是否可以导入iis?
3. 有什么简便的方法使客户端简单地转为能够访问https? 注意我使用axis, 和server通信的代码都是框架生成的, 所以希望能有高
层的实现
PS: 在这里发过几次求助帖, 没有得到特别有帮助的回答, 高手不要潜水, 多谢!
1. 拿到server端的证书(一个基于base64的cer文件)
2. 用keytool导入证书到本地
还没走到下面, 导入就出错了. 我的命令为:
keytool -import -file abc.cer -keystore mykeystore -storepass 111111
错误为: keytool错误: java.lang.Exception: 所输入的不是一个 X.509 认证
运行 keytool -printcert -file abc.cer也出错:
sun.security.pkcs.ParsingException: X509.ObjectIdentifier() -- data isn't an obj
ect ID (tag = 48)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:118)
at sun.security.pkcs.PKCS7.<init>(PKCS7.java:68)
at sun.security.provider.X509Factory.parseX509orPKCS7Cert(X509Factory.ja
va:530)
at sun.security.provider.X509Factory.engineGenerateCertificates(X509Fact
ory.java:407)
at java.security.cert.CertificateFactory.generateCertificates(Certificat
eFactory.java:511)
at sun.security.tools.KeyTool.doPrintCert(KeyTool.java:1021)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:539)
at sun.security.tools.KeyTool.run(KeyTool.java:124)
at sun.security.tools.KeyTool.main(KeyTool.java:118)
Caused by: java.io.IOException: X509.ObjectIdentifier() -- data isn't an object
ID (tag = 48)
at sun.security.util.ObjectIdentifier.<init>(ObjectIdentifier.java:134)
at sun.security.util.DerInputStream.getOID(DerInputStream.java:250)
at sun.security.pkcs.ContentInfo.<init>(ContentInfo.java:120)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:136)
at sun.security.pkcs.PKCS7.parse(PKCS7.java:115)
... 8 more
keytool错误: java.lang.Exception: 无法对输入进行语法分析
服务器证书是在iis中用windows 2003 server的CA生成的. 然后我尝试用keytool产生证书给server用,但server无法导入
有几个问题:
1. iis的证书如何用keytool导入本地?
2. java产生的SSL证书是否可以导入iis?
3. 有什么简便的方法使客户端简单地转为能够访问https? 注意我使用axis, 和server通信的代码都是框架生成的, 所以希望能有高
层的实现
PS: 在这里发过几次求助帖, 没有得到特别有帮助的回答, 高手不要潜水, 多谢!
...全文
相关推荐
java 调用https webservice实例及axis包
java 调用https发布的webservice接口实例及axis包及详细说明
axis1实现webservice 及客户端调用方法 实现
axis1实现webservice 及客户端调用方法 实现
axis web Service
本资源是Web Service 的框架之一 Axis 集成Web网站示例代码
调用天气预报webservice
调用天气预报webService axis1.4
用axis布置webServices详细步骤
用axis布置webServices详细步骤,里面有详细的操作步骤,并且有图片顺序来进行说明,文件中包含发布webservice做服务端,还有客户端的的调用,以其说明


