android https访问

https的访问过程

这里写图片描述

使用中遇到的问题

最近项目需要使用https方式访问,项目是用retrofit+okhttp框架,需要把以前的http全部改为https访问;关于https访问配置的方式有三种

  • 证书来自收费的网站
  • 证书来自自签名
  • 客户端忽略所有证书

第一种方式:
直接将以前的http改成https即可,不需要做任何改变
后面两种网上很多,就不做多解释了,主要是记录第一种出现的问题,照理说第一种改变https即可,但是我却出现这种异常

Suppressed: javax.net.ssl.SSLHandshakeException: Handshake failed
04-17 18:09:07.892 3160-3160/com.chinamobile.iot.easiercharger W/System.err:        ... 36 more
04-17 18:09:07.892 3160-3160/com.chinamobile.iot.easiercharger W/System.err:    Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x9e23da80: Failure in SSL library, usually a protocol error
04-17 18:09:07.892 3160-3160/com.chinamobile.iot.easiercharger W/System.err: error:100bd10c:SSL routines:ssl3_get_record:WRONG_VERSION_NUMBER (external/boringssl/src/ssl/s3_pkt.c:311 0xa92997f7:0x00000000)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:353)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:        ... 35 more
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err: Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x9e23da80: Failure in SSL library, usually a protocol error
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err: error:100bd10c:SSL routines:ssl3_get_record:WRONG_VERSION_NUMBER (external/boringssl/src/ssl/s3_pkt.c:311 0xa92997f7:0x00000000)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:353)
04-17 18:09:07.902 3160-3160/com.chinamobile.iot.easiercharger W/System.err:    ... 35 more

这种问题原因有多重,可能证书有问题,也可能是自己的代码有问题;我的项目出现这个问题的原因是:

未改变https之前,我的网络接口类似于这种

http://www.easyerpower.com:80

改成https后是这种

https://www.easyerpower.com:80

改了之后就出现上诉的错误,你们能看出问题所在吗?


那就是端口号


http协议默认使用的端口号是80,https默认的端口是443,而这里我改动https后端口号没变,所以这个域名是访问不通的,除非https通信端口号被改成了80才会通,解决办法就是端口号改成443即可解决

这是我使用第一种方式引发的问题,如果使用自签名的证书或者忽略所有证书,一旦你的端口号有误,也可能出现上诉问题,伙伴们,擦亮眼睛吧!

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jackzhouyu/article/details/79978749
个人分类: android
上一篇retrfoit+okhttp动态改变连接超时时间
下一篇mac修改vim属性
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭