自建SSL证书用于Android指定域名修改HOST

0x01 需求

手机挂代理,本地改host,拦截请求

0x02 方案

** 半吊子水平自己搞,一套做完之后发现,直接代理到 Fiddler 的端口上,就可以通过 Fiddler 的根证书完成验证 **

脑子有问题的做法就是先给服务器配置证书,然后把证书安装到手机上,最后想办法让工程的networkSecurityConfig信任用户证书

0x03 过程

  1. 按照文档生成的服务器证书是 key csr crt 三个文件,其中私钥 key 和 crt 证书配置在服务器中,但这个证书不是根证书,没法在 Android 上安装

  2. 重新生成根证书,再用根证书签名 ca 证书,最后手机安装根证书,服务器配置 ca 证书。但手机开始报错 SSLPeerUnverifiedException: Hostname xxx not verified

  3. 检查之后发现,需要给生成的根证书配置-config openssl.cnf,先编辑openssl.cnf,路径是在/etc/pki/tls/openssl.cnf,找到[ v3_ca ],添加subjectAltName = IP:1.2.3.4 DNS:a.b.com,保存

  4. 重新生成私钥
    openssl genrsa -out root.key 2048 -nodes

  5. 重新创建根证书
    openssl req -new -x509 -key root.key -sha256 -config /etc/pki/tls/openssl.cnf -out root.crt -days 3650 -subj '/C=C/O=O/CN=CN'

  6. 直接使用根证书配置服务器,重启,完成

posted on 2022-05-12 10:03  maiiiiii  阅读(173)  评论(0编辑  收藏  举报

导航