- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我成功将我的自定义 SSL 证书添加到 Android 6 模拟器时,我觉得我破解了原子(我对 system.img
文件进行了持续更改)。但是浏览器无法以任何方式识别它。我关注了这个很棒的 tutorial ,而且我认为我在散列方面做错了什么。以下是我所做工作的完整步骤,以及到目前为止我得到的结果。
Windows 10、64 位
预建模拟器
高级模拟器设置
系统文件
890c6016.0
c:\device_tmp
中创建用于存储系统文件的空文件夹实用程序:
模拟器
来自 /android_sdk/tools/emulator.exe
adb
来自 /android_sdk/platform-tools/adb.exe
启动模拟器:
emulator -avd Nexus_64 -no-snapshot-load
现在它开始了,我打开命令行窗口
查找外部存储名称为 sdcard
没有足够的存储空间用于图像文件。
adb shell df
在我的例子中 /storage/13E4-1F02/
有 2GB 空间
安装证书
adb shell "rm /sdcard/"
adb push 890c6016.0 /sdcard/
adb shell "mount -o remount,rw /system"
adb shell "cp /sdcard/890c6016.0 /system/etc/security/cacerts/"
adb shell "chmod 644 /system/etc/security/cacerts/890c6016.0"
adb shell "dd if=/dev/block/vda of=/storage/13E4-1F02/system.img"
adb pull /storage/13E4-1F02/system.img c:/device_tmp
最后一行每行大约需要 5 分钟。之后,我通过关闭所有 shell 窗口并从 system.img
文件启动它来终止设备
emulator -http-proxy my.ip:8888 -system c:/device_tmp/system.img
当设备启动时,它的系统中就有该证书。
这就是我构建证书文件的方式。我正在使用 Charles和openssl,所以我从help->SSL-Proxing->export Charles root certificate下载了Charles证书:go.p12
。
制作crt
openssl pkcs12 -in go.p12 -clcerts -nokeys -out go.crt
制作PEM
openssl pkcs12 -in go.p12 -out go.pem
获取哈希码以用作扩展名为 .0 的文件名
openssl x509 -inform PEM -subject_hash_old -in go.crt
复制go.crt
并修改它的名字为我们刚刚得到的hash(890c6016.0)
type go.crt > 890c6016.0
*type 是 cat(Mac)
的 Windows 命令将所有签名信息附加到文件
openssl x509 -inform PEM -text -fingerprint -in go.crt -out /dev/null >> 890c6016.0
完成!
成绩单内容如下:890c6016.0这也是你在运行时会得到什么:openssl x509 -in 890c6016.0 -text -noout
890c6016.0:
-----BEGIN CERTIFICATE-----
MIIFhjCCBG6gAwIBAgIGAVThome6MA0GCSqGSIb3DQEBCwUAMIHHMVkwVwYDVQQD
DFBDaGFybGVzIFByb3h5IEN1c3RvbSBSb290IENlcnRpZmljYXRlIChidWlsdCBv
biBERVNLVE9QLTU1U01DOTMsIDI0INee15DXmSAyMDE2KTEkMCIGA1UECwwbaHR0
cDovL2NoYXJsZXNwcm94eS5jb20vc3NsMREwDwYDVQQKDAhYSzcyIEx0ZDERMA8G
A1UEBwwIQXVja2xhbmQxETAPBgNVBAgMCEF1Y2tsYW5kMQswCQYDVQQGEwJOWjAe
Fw0wMDAxMDEwMDAwMDBaFw00NTA3MjEwNzE5NTdaMIHHMVkwVwYDVQQDDFBDaGFy
bGVzIFByb3h5IEN1c3RvbSBSb290IENlcnRpZmljYXRlIChidWlsdCBvbiBERVNL
VE9QLTU1U01DOTMsIDI0INee15DXmSAyMDE2KTEkMCIGA1UECwwbaHR0cDovL2No
YXJsZXNwcm94eS5jb20vc3NsMREwDwYDVQQKDAhYSzcyIEx0ZDERMA8GA1UEBwwI
QXVja2xhbmQxETAPBgNVBAgMCEF1Y2tsYW5kMQswCQYDVQQGEwJOWjCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALzSQjJpi+WVtoWNjFZh/jArpBMoXNfa
Y5MMuRvnMhMmt+hGnL6v5C5gSmDBwU5YZOhudbAs30J46i2Pft1CZW94AbIwCClu
P1wBjUKZVpt/izY8HfuuiLet0Mup+mU/x8iWwqs4MhJ/DJ4srzho6wKSB/jhZqdt
HbHHdu7+I7XVkk/lP3nMikmhkxQAd6o+zr/dudHTqBaW60PhvsO4tbWec4rSZot7
QXwwaUVAcUD0dNDoLeK6iaiQ5jpZDSL+/0VTRXH639MMLzZYl+sr0qm7y5Bt+RfX
eYV3lI8/H9O9dfdkseY0nbF8GL54dA+BzWZokzUvb9Stb8eMERzCWW0CAwEAAaOC
AXQwggFwMA8GA1UdEwEB/wQFMAMBAf8wggEsBglghkgBhvhCAQ0EggEdE4IBGVRo
aXMgUm9vdCBjZXJ0aWZpY2F0ZSB3YXMgZ2VuZXJhdGVkIGJ5IENoYXJsZXMgUHJv
eHkgZm9yIFNTTCBQcm94eWluZy4gSWYgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBwYXJ0
IG9mIGEgY2VydGlmaWNhdGUgY2hhaW4sIHRoaXMgbWVhbnMgdGhhdCB5b3UncmUg
YnJvd3NpbmcgdGhyb3VnaCBDaGFybGVzIFByb3h5IHdpdGggU1NMIFByb3h5aW5n
IGVuYWJsZWQgZm9yIHRoaXMgd2Vic2l0ZS4gUGxlYXNlIHNlZSBodHRwOi8vY2hh
cmxlc3Byb3h5LmNvbS9zc2wgZm9yIG1vcmUgaW5mb3JtYXRpb24uMA4GA1UdDwEB
/wQEAwICBDAdBgNVHQ4EFgQU0rNPibkiS4JXRyiYSiPfAICMUg8wDQYJKoZIhvcN
AQELBQADggEBAEPUi8eDyNGYl/e20t8ScPeMM3U35FSYv7qnG2Gac2bLhkh6C14e
ucy011Tanj9x1kc3MXATZ8P9fLzCWQotjNlDUjfSXCoQZs2wAtq+V58S0IUyWnnv
4/sJLOI6qCVDoLsE8B6m1Yznb77V+4bq1A31G14nHDks73MWPPY5fKE6QhXFjRoI
Tzex9wjkQoHr8yywwEmTEmmoUvXqT8RRy2cy96I0msp0TUWCFHb2+0eYix7C7Ubw
mHLjOA41MZ9BNlZJBEPS7G35rLMSPFWsj0pa3tZtouk7SxbiIbO/6kk6o/pZdkHf
N2RX07Snk+cQepwiBIpI8YFs9hvxf4V+yLc=
-----END CERTIFICATE-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
01:54:e1:a2:67:ba
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=Charles Proxy Custom Root Certificate (built on DESKTOP-55SMC93, 24 \xD7\x9E\xD7\x90\xD7\x99 2016), OU=http://charlesproxy.com/ssl, O=XK72 Ltd, L=Auckland, ST=Auckland, C=NZ
Validity
Not Before: Jan 1 00:00:00 2000 GMT
Not After : Jul 21 07:19:57 2045 GMT
Subject: CN=Charles Proxy Custom Root Certificate (built on DESKTOP-55SMC93, 24 \xD7\x9E\xD7\x90\xD7\x99 2016), OU=http://charlesproxy.com/ssl, O=XK72 Ltd, L=Auckland, ST=Auckland, C=NZ
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:bc:d2:42:32:69:8b:e5:95:b6:85:8d:8c:56:61:
fe:30:2b:a4:13:28:5c:d7:da:63:93:0c:b9:1b:e7:
32:13:26:b7:e8:46:9c:be:af:e4:2e:60:4a:60:c1:
c1:4e:58:64:e8:6e:75:b0:2c:df:42:78:ea:2d:8f:
7e:dd:42:65:6f:78:01:b2:30:08:29:6e:3f:5c:01:
8d:42:99:56:9b:7f:8b:36:3c:1d:fb:ae:88:b7:ad:
d0:cb:a9:fa:65:3f:c7:c8:96:c2:ab:38:32:12:7f:
0c:9e:2c:af:38:68:eb:02:92:07:f8:e1:66:a7:6d:
1d:b1:c7:76:ee:fe:23:b5:d5:92:4f:e5:3f:79:cc:
8a:49:a1:93:14:00:77:aa:3e:ce:bf:dd:b9:d1:d3:
a8:16:96:eb:43:e1:be:c3:b8:b5:b5:9e:73:8a:d2:
66:8b:7b:41:7c:30:69:45:40:71:40:f4:74:d0:e8:
2d:e2:ba:89:a8:90:e6:3a:59:0d:22:fe:ff:45:53:
45:71:fa:df:d3:0c:2f:36:58:97:eb:2b:d2:a9:bb:
cb:90:6d:f9:17:d7:79:85:77:94:8f:3f:1f:d3:bd:
75:f7:64:b1:e6:34:9d:b1:7c:18:be:78:74:0f:81:
cd:66:68:93:35:2f:6f:d4:ad:6f:c7:8c:11:1c:c2:
59:6d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
Netscape Comment:
....This Root certificate was generated by Charles Proxy for SSL Proxying. If this certificate is part of a certificate chain, this means that you're browsing through Charles Proxy with SSL Proxying enabled for this website. Please see http://charlesproxy.com/ssl for more information.
X509v3 Key Usage: critical
Certificate Sign
X509v3 Subject Key Identifier:
D2:B3:4F:89:B9:22:4B:82:57:47:28:98:4A:23:DF:00:80:8C:52:0F
Signature Algorithm: sha256WithRSAEncryption
43:d4:8b:c7:83:c8:d1:98:97:f7:b6:d2:df:12:70:f7:8c:33:
75:37:e4:54:98:bf:ba:a7:1b:61:9a:73:66:cb:86:48:7a:0b:
5e:1e:b9:cc:b4:d7:54:da:9e:3f:71:d6:47:37:31:70:13:67:
c3:fd:7c:bc:c2:59:0a:2d:8c:d9:43:52:37:d2:5c:2a:10:66:
cd:b0:02:da:be:57:9f:12:d0:85:32:5a:79:ef:e3:fb:09:2c:
e2:3a:a8:25:43:a0:bb:04:f0:1e:a6:d5:8c:e7:6f:be:d5:fb:
86:ea:d4:0d:f5:1b:5e:27:1c:39:2c:ef:73:16:3c:f6:39:7c:
a1:3a:42:15:c5:8d:1a:08:4f:37:b1:f7:08:e4:42:81:eb:f3:
2c:b0:c0:49:93:12:69:a8:52:f5:ea:4f:c4:51:cb:67:32:f7:
a2:34:9a:ca:74:4d:45:82:14:76:f6:fb:47:98:8b:1e:c2:ed:
46:f0:98:72:e3:38:0e:35:31:9f:41:36:56:49:04:43:d2:ec:
6d:f9:ac:b3:12:3c:55:ac:8f:4a:5a:de:d6:6d:a2:e9:3b:4b:
16:e2:21:b3:bf:ea:49:3a:a3:fa:59:76:41:df:37:64:57:d3:
b4:a7:93:e7:10:7a:9c:22:04:8a:48:f1:81:6c:f6:1b:f1:7f:
85:7e:c8:b7
当我从模拟器运行默认的 android 浏览器时,它说它不能信任 SSL 和类似的问题,当我运行我的应用程序时。这表明代理正在运行,但我构建的证书未被接受。我还检查了文件系统以确保。它在那里!
那么我在这里错过了什么?
我在 Genymotion 上测试了这种方法模拟器并且它工作!!!为什么 Android 模拟器不同?
最佳答案
因此,您拥有的证书是自签名证书,即证书的Issue to 和Issued by 具有相同的值。预计客户端会抛出它不信任证书的错误,因为在这种情况下它不知道颁发者。我不确定为什么它适用于 Genymotion。 :)
关于android - 生成和安装 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641013/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 6 年前。 Improv
我们最近构建了一个 Web 生成器应用程序(所见即所得、预先设计的模板、购物车等)。我们一直在寻找 SSL 证书的几个不同选项,甚至是通配符,以寻求解决方案。问题是我们不想每次有客户想要将 SSL 添
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 6 年前。 Improve
我想这是不可能的,但如果是这样,我想知道为什么。 假设我从附近的官方证书颁发机构之一获得了 example.com 的 SSL 证书。假设我正在运行 a.example.com 和 b.c.d.exa
在我的 java 应用程序中,我有一个带有自签名证书/ key 的 JKS keystore 。我需要加载它们并将它们转换为 BouncyCaSTLe 类型。 我正在使用 java.security.
我不是这方面的专家,但我只是遵循 Android 开发者网站上列出的代码 keytool -genkey -v -keystore orbii.jks-keyalg RSA -keysize 2048
我正在为我的一个应用程序实现推送通知系统,所以我正在关注 this教程并为此生成 SSL 证书。 我的这个应用程序还涉及应用程序和服务器之间的一些数据交换,我希望它受到 SSL 保护,我想知道从 ve
可能这是重复的问题,但我没有从上一个问题中完全清楚,这就是我发布新问题的原因。请看看这个。我会将 Ca 证书放在我的资源文件夹中以验证 ca 认证的证书,服务器中也会有相同的 ca 证书。 我正在创建
首先,我想指出这在 Internet Exporer 11 上运行良好。但出于某种原因,我无法让 FireFox 正常运行! 所以我已经添加了我自己的 rootCA 安全证书,在 Internet E
我有域“www.example.com”的 SSL 证书,我已将此证书安装在运行良好的端口 80 上的 tomcat 服务器中。现在我的要求是在 https 中运行 php 代码,因为我的 Apach
我正在构建一个 oauth 1.0a 服务,它将被 Jira 中的一个小工具使用,它是一个用 C# 编写的 .Net 3.5 应用程序。 Jira 使用 RSA-SHA1 签名方法向此服务发出请求,这
假设用户打开 https://ssl-site.example/link/index.php我用 ProxyPass 配置了我的服务器和 ProxyPassReverse在 Apache 配置中(在
我有一个 tcp 服务器,它使用证书进行 ssl/tls 和许可。对于 ssl/tls,证书存储在 pkcs#12 文件中,我认为该文件将作为安装过程的一部分进行安装。 关于 Rhino 许可,作为安
我开始想第一次在 jmeter 中记录。 我的步骤是: 我在 mac 上安装了 jmeter:brew install jmeter 我创建了新的录音模板 我点击开始按钮。它显示如下图所示的弹出窗口。
通常,我的困惑似乎正在从我在WCF上下文中理解安全性的尝试中消除。在WCF中,似乎可以将证书用于身份验证和加密。基本上,我试图理解: 如何将X509证书用作身份验证令牌? ssl证书通常不公开吗?这是
我正在尝试使用 openssl 库让客户端通过 https 连接到某些服务器。 调用堆栈是这样的: SSL_library_init(); SSL_load_error_strings(); SSL_
我正在阅读 this article其中解释了 iOS/OSX 中的代码签名。 我知道从KeyChain Access utility 我可以看到我的证书,如果展开我的开发者证书,我可以看到有一个私钥
我有一个既在互联网上又在私有(private)网络上的服务器。 我正尝试按照我的经理的要求在内部专用网络上设置 TLS。 该服务可供 Internet 和私有(private)内部网络客户端使用。 外
我在具有不同域扩展名的单个网络服务器中设置了我的站点,例如 https://mybusiness.com https://mybusiness.com.au https://mybusiness.co
我正在开发一个移动应用程序。我是网络开发的新手。 我在 GoDaddy 上有 DNS(比如 app.test.com)并且有一个只有 IP 地址的服务器(比如 31.254.42.73)。我的请求从
我是一名优秀的程序员,十分优秀!