美文网首页Kotlin后端开发安卓开发安卓开发
自签名证书报错:javax.net.ssl.SSLPeerUnv

自签名证书报错:javax.net.ssl.SSLPeerUnv

作者: 蓝不蓝编程 | 来源:发表于2019-05-24 15:37 被阅读2次

背景

现在服务器都要求使用https了,正式商用时,肯定要申请标准的商用ssl证书,但是测试时,为了方便,需要采用自签名证书.下面是在使用自签名证书时遇到的问题.

问题描述

安卓客户端通过okhttp访问服务器报错:

2019-05-24 09:35:37.988 24298-24343/com.cxyzy.note E/WM-WorkerWrapper: Work [ id=d948a142-a121-4b3d-aeeb-2d424f9e1f58, tags={ com.cxyzy.note.DataSyncWorker } ] failed because it threw an exception/error
    java.util.concurrent.ExecutionException: javax.net.ssl.SSLPeerUnverifiedException: Hostname 192.168.186.80 not verified:
        certificate: sha256/XYM7pQnVRFEOtEDnlDn4sJD3jKX592BPsDyBp/I/cGI=
        DN: CN=192.168.186.80,OU=internet,O=cxyzy,C=CN
        subjectAltNames: [127.0.0.1, 127.0.0.1, localhost]
        at androidx.work.impl.utils.futures.AbstractFuture.getDoneValue(AbstractFuture.java:516)
        at androidx.work.impl.utils.futures.AbstractFuture.get(AbstractFuture.java:475)
        at androidx.work.impl.WorkerWrapper$2.run(WorkerWrapper.java:290)

分析

证书最关键的是“常用名称”即CN(CommonName)和“IP地址”,必须和服务器的ip地址一致,否则就会校验失败.有两种查看证书的方式:

  1. 利用keytool命令查看证书内容
    keytool -v -list -keystore https_keystore.jks -alias server -keypass 123456 -storepass 123456
  2. 在浏览器查看证书内容
    我在服务器端开放了一个get接口,通过浏览器来查看服务器证书.


解决方案

制作证书时,“常用名称”即CN(CommonName)和“IP地址”,保持和服务器的ip地址一致.
一般可以用openssl等命令来制作证书,我这边用的是kotlin代码来搞的.

安卓开发技术分享: https://www.jianshu.com/p/442339952f26
点击关注专辑,查看最新技术分享
更多技术总结好文,请关注:「程序园中猿」

相关文章

  • 自签名证书报错:javax.net.ssl.SSLPeerUnv

    背景 现在服务器都要求使用https了,正式商用时,肯定要申请标准的商用ssl证书,但是测试时,为了方便,需要采用...

  • 网络编程(11)HTTPS 请求

    一 生成自签名数字证书 说明:1> 什么是证书--->带签名的公钥(公钥+签名)2> 自签名证书的特点 --->...

  • 为Docker镜像加入可信任证书

    在使用容器访问一个自签名证书站点的时候碰到如下报错: 解决方法:将该证书加到Docker镜像中,让系统信任这类证书...

  • 踩坑记

    1、android自签名证书Glide加载不出图片 关于https中自签名证书的介绍以及OkHttp中解决自签名证...

  • curl: (60) Peer's Certificate is

    此种情况多发生在自签名的证书,报错含义是签发证书机构未经认证,无法识别。解决办法就是替换证书ca-bundle.c...

  • git SSL certificate problem: sel

    执行git clone 时候偶然出现的报错:SSL数字证书问题:自签名证书,参考了一些文章,解决方法其实就是“直接...

  • openssl shell辅助工具

    最近折腾自签名证书,研究了下生成根证书、服务端证书、颁发客户证书; 以及证书吊销;结合nginx实现自签名双向认证...

  • React-Native fetch访问HTTPS自签名证书服务

    如果服务器是持有自签名证书,React-Native fetch访问会报错 解决方法: 找到RCTNetwork....

  • Android安全三、移动平台安全机制

    一、签名和授权 1、移动平台中的主流签名作用:自签名的完整性鉴别 自签名:证书的签名者和证书拥有者是同一实体。自签...

  • openssl生成EC类型证书

    生成EC KEY 生成CSR 生成自签名证书 或者使用CA证书来签名

网友评论

    本文标题:自签名证书报错:javax.net.ssl.SSLPeerUnv

    本文链接:https://www.haomeiwen.com/subject/pvmwzqtx.html