开发者社区> 问答> 正文

Java sslsocket程序报错javax.net.ssl.SSLHands?400报错

在网上学习的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

展开
收起
爱吃鱼的程序员 2020-06-07 16:35:23 762 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>ssl握手时,需要交换加密套件,双方没有共同的加密算法,需要自己设置一下</p>
    
    2020-06-07 16:35:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载