在网上学习的Android做客户端,java做服务器的sslsocket交互,在模拟器上运行没有错误,在真机上运行服务端会报错!
生成秘钥库之类的语句
1) 生成服务器端的密钥库kserver.keystore,采用默认的JKS类型
keytool -genkeypair -v -alias server -keystore kserver.keystore
2)从服务器端密钥库kserver.keystore中导出服务器证书:
keytool -exportcert -v -alias server -file server.cer -keystore kserver.keystore
3)将导出的服务器端证书导入到客户端信任密钥库tclient.bks中,其中客户端信任密钥库自动生成,并且此时要特别指明信任密钥库是BKS类型的,使用命令如下:
keytool -importcert -v -alias server -file server.cer -keystore tclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
4)现在生成客户端密钥库kclient.bks,使用命令如下:
keytool -genkeypair -v -alias client -keystore kclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
5)导出客户端证书:
D:\keys\test>keytool -exportcert -v -alias client -file client.cer -keystore kclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
6)导入生成服务器端信任密钥库(JKS类型):
D:\keys\test>keytool -importcert -v -alias client -file client.cer -keystore tserver.keystore
<p>ssl握手时,需要交换加密套件,双方没有共同的加密算法,需要自己设置一下</p>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。