一.安装openssl
1、下载OpenSSL
OpenSSL*下载地址:https://oomake.com/download/openssl
这个链接有Windows版和源码版最新版下载地址,可以满足Windows、LInux、Mac OS系统使用。
2、Windows系统安装OpenSSL
到上面的链接下载OpenSSL Windows
版本,注意32
位和64
位是不同的安装包,
下载之后是exe文件,双击按照提示一步步安装就可以了。
3、 Linux系统安装OpenSSL
3.1 安装OpenSSL:
# tar -xzf openssl-1.0.2f.tar.gz
# cd openssl-1.0.2f
# mkdir /usr/local/openssl
# ./config --prefix=/usr/local/openssl
# make
# make install123456
这样就安装完成了,接下来一些辅助步骤。
3.2 创建软连接
# which openssl
/usr/local/openssl/bin/openssl123
为了使用方便,以及以后版本更新方便,可以创建软连接,如下:
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl1
3.3 执行以下命令
# cd /usr/local/openssl
# ldd /usr/local/openssl/bin/openssl
linux-vdso.so.1 => (0x00007ffc63975000)
libssl.so.1.1 => not found
libcrypto.so.1.1 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8d9da0f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8d9d7f3000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8d9d431000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8d9dc28000)123456789
安装OK
3.4 查看版本
# openssl version
/usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory12
找不到动态库libssl.so.1.1,小问题,执行如下命令:
# vim /etc/ld.so.conf1
在最后追加一行:
/usr/local/openssl/lib 1
然后执行:
# ldconfig /etc/ld.so.conf
# openssl version
OpenSSL 1.1.0f 25 May 2017
1234
Done.
二.解析并移动
# 第一步,先下载好Fiddler或Mitmproxy的证书文件,PEM或者DER格式均可。
# 第二步,获取有效的系统证书文件名。
# 如果是PEM格式的:
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem -noout
# 如果是DER格式的:
openssl x509 -inform der -subject_hash_old -in FiddlerRoot.cer -noout
# 例如,输出8bbe0e8d
# 第三步,转换证书格式为PEM格式,并重命名证书为有效的系统证书名。
# 如果是PEM格式的:
openssl x509 -inform PEM -in mitmproxy-ca-cert.pem -out 8bbe0e8d.0
# 如果是DER格式的:
openssl x509 -inform der -in FiddlerRoot.cer -out 8bbe0e8d.0
# 第四步,上传准备好的证书文件到设备,例如
adb push 8bbe0e8d.0 /sdcard/
# 第五步
# 以下进入adb shell后操作
adb shell
# 获取root权限
su
# 重新挂载系统,以可以写入文件到系统目录
mount -o rw,remount /system
# 复制证书到Android系统证书目录
cp /sdcard/8bbe0e8d.0 /system/etc/security/cacerts
# 修改证书权限
chmod 644 /system/etc/security/cacerts/8bbe0e8d.0
# 上述可整合为一句
adb shell "su -c ‘mount -o rw,remount /system;cp /sdcard/8bbe0e8d.0 /system/etc/security/cacerts;chmod 644 /system/etc/security/cacerts/8bbe0e8d.0;‘"
# 重启设备
adb reboot