自建SSL证书用于Android指定域名修改HOST
0x01 需求
手机挂代理,本地改host,拦截请求
0x02 方案
** 半吊子水平自己搞,一套做完之后发现,直接代理到 Fiddler 的端口上,就可以通过 Fiddler 的根证书完成验证 **
脑子有问题的做法就是先给服务器配置证书,然后把证书安装到手机上,最后想办法让工程的networkSecurityConfig
信任用户证书
0x03 过程
-
按照文档生成的服务器证书是 key csr crt 三个文件,其中私钥 key 和 crt 证书配置在服务器中,但这个证书不是根证书,没法在 Android 上安装
-
重新生成根证书,再用根证书签名 ca 证书,最后手机安装根证书,服务器配置 ca 证书。但手机开始报错
SSLPeerUnverifiedException: Hostname xxx not verified
-
检查之后发现,需要给生成的根证书配置
-config openssl.cnf
,先编辑openssl.cnf
,路径是在/etc/pki/tls/openssl.cnf
,找到[ v3_ca ]
,添加subjectAltName = IP:1.2.3.4 DNS:a.b.com
,保存 -
重新生成私钥
openssl genrsa -out root.key 2048 -nodes
-
重新创建根证书
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'
-
直接使用根证书配置服务器,重启,完成