Java sslsocket程序报错javax.net.ssl.SSLHandshakeException: no cipher suites in common

情深不及哈士奇 发布于 2018/05/08 16:41
阅读 1K+
收藏 0

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

加载中
0
郭里奥

ssl握手时,需要交换加密套件,双方没有共同的加密算法,需要自己设置一下

返回顶部
顶部