sheng_se
sheng_se
  • 发布:2022-01-01 15:52
  • 更新:2024-03-20 18:08
  • 阅读:3862

关于uniapp双向认证https的经验分享

分类:HBuilderX

大佬请绕道,emmm.....小白可以看一下
我在使用过程中遇到以下问题:

  1. uni.configMTLS如何使用的问题
  2. 如何使用域名访问的问题
  3. 证书生成的问题
  4. 证书引用的问题
  5. 使用报错的问题
    首先说一下,我后台用的是springboot,因为是测试所以随便写了一个接口,直接通过uniapp调用
  6. uni.configMTLS如何使用的问题
    uni.configMTLS是配置证书用按照官方文档配置即可,可以放到App.vue文件的生命周期函数中调用一次即可,发请求还是用uni.request正常发
  7. 如何使用域名访问的问题
    我用的是夜神模拟器,修改模拟器hosts文件配置域名映射到springboot所在机器ip,我随便起了个域名www.unihttps.com
  8. 证书生成的问题
    我用的是keytool,具体怎么用请自行百度,很大程度借助了这篇文章https://www.jianshu.com/p/cabf4b759d8f
  9. 证书引用的问题
    把生成的client.p12和server.cer直接扔到uni工程下的static下,按官方demo引用的方式用就行了
  10. 使用报错的问题
    碰到的错误,走了各种弯路,遇到各种奇葩错,当遇到如下错误时我感觉自己要成功了
    "errMsg": "request:fail abort statusCode:-1 Hostname www.unihttps.com not verified:\n certificate: sha256/4cIBWyy+2BlD/ME12B4hIRVEefrl5X0nL0/3DGISfKA=\n DN: CN=www.unihttps.com\n subjectAltNames: []"

    但是还是有毛病,此时我的postman和浏览器都可以正常使用证书访问后台,但是uni工程还是不可以,本来以为是uniapp的bug,经过长时间百度“keytool DN”关键词,找到了问题所在,server证书没有配置-SAN参数,配置后即可正常访问
    为了实现uniapp的双向认证废了我这个菜鸡2个星期,一度认证官方uni.configMTLS是逗我玩的,功夫不负有心人啊,希望后来人看到此帖能够早点下班,谢谢过程中各位大佬赐教

1 关注 分享
DCloud_Android_DQQ

要回复文章请先登录注册

2***@qq.com

2***@qq.com

大佬,能加我qq2293775255或者留个联系方式吗?
2024-03-20 18:08
随风ing

随风ing

能留个联系方式不?
2024-01-23 09:36
1***@139.com

1***@139.com

你这前面几个问题,就是抛出几个问题出来,没说解决方案,有啥用?
2022-06-25 12:47
sheng_se

sheng_se (作者)

在分享一点,关于没有域名直接使用IP的情况,官方大佬给的说法是https是基于域名的协议,实际经过测试,是可以用IP的,只需要在生成服务器证书的时候指定SAN参数如以下格式,例如服务器IP为192.168.191.3,就可以配置SAN为:SAN=ip:192.168.191.3,这样生成的证书,就可以不使用域名,改用IP了
2022-01-06 14:00
sheng_se

sheng_se (作者)

https://www.jianshu.com/p/cabf4b759d8f,说一下哈,生成证书我是学习的这篇文章,但是他的方法我没走通,不知道andoridTlsconfig咋用,我就是正常用的uni.request
2022-01-01 15:54