Android N 自签名证书的网络安全配置用什么?
What Do We Use for Android N Network Security Configuration for a Self-Signed Certificate?
我正在尝试测试 N Developer Preview 网络安全配置功能的所有方面。我的大部分工作正常,但我对自签名证书方案感到困惑。
根据 the docs,Android N 应该对 PEM 或 DER 文件感到满意,因为它适用于其他证书验证方案。但是,我不怎么使用自签名证书,我尝试让这个工作保持 运行 进入证书路径验证异常。
为了测试,我使用 thin
作为服务器,运行 在我的开发机器上,可通过 N 模拟器访问。自签名证书适用于我开发机器上的浏览器,如果我切换到 运行 thin
sans SSL,应用程序可以很好地访问服务器。所以,这不是连接问题。
我使用 this site 上的说明创建了自签名证书:
sudo openssl genrsa -out "/etc/[webserver]/ssl/example.key" 2048
sudo openssl req -new -key "/etc/[webserver]/ssl/example.key" \
-out "/etc/[webserver]/ssl/example.csr"
sudo openssl x509 -req -days 365 -in "/etc/[webserver]/ssl/example.csr" \
-signkey "/etc/[webserver]/ssl/example.key" \
-out "/etc/[webserver]/ssl/example.crt"
根据this Stack Overflow answer, the example.crt
file is a PEM file. Elsewhere, I see instructions for creating a "combined PEM" file。但是,我尝试了这两种方法,但没有成功。
关于网络安全配置的东西,<domain-config>
和<debug-overrides>
我都试过了。后者看起来像:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/selfsigned"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
但是,无论哪种情况,我都会收到验证错误。
我们究竟应该将什么作为 PEM 或 DER 文件作为原始资源放入,才能使这项工作正常进行?
这似乎适用于 N Developer Preview 2,使用问题中显示的 openssl
脚本生成的 example.crt
。目前,我假设 N Developer Preview 2 与 N Developer Preview 1 相比发生了变化,这说明了变化。
我正在尝试测试 N Developer Preview 网络安全配置功能的所有方面。我的大部分工作正常,但我对自签名证书方案感到困惑。
根据 the docs,Android N 应该对 PEM 或 DER 文件感到满意,因为它适用于其他证书验证方案。但是,我不怎么使用自签名证书,我尝试让这个工作保持 运行 进入证书路径验证异常。
为了测试,我使用 thin
作为服务器,运行 在我的开发机器上,可通过 N 模拟器访问。自签名证书适用于我开发机器上的浏览器,如果我切换到 运行 thin
sans SSL,应用程序可以很好地访问服务器。所以,这不是连接问题。
我使用 this site 上的说明创建了自签名证书:
sudo openssl genrsa -out "/etc/[webserver]/ssl/example.key" 2048
sudo openssl req -new -key "/etc/[webserver]/ssl/example.key" \
-out "/etc/[webserver]/ssl/example.csr"
sudo openssl x509 -req -days 365 -in "/etc/[webserver]/ssl/example.csr" \
-signkey "/etc/[webserver]/ssl/example.key" \
-out "/etc/[webserver]/ssl/example.crt"
根据this Stack Overflow answer, the example.crt
file is a PEM file. Elsewhere, I see instructions for creating a "combined PEM" file。但是,我尝试了这两种方法,但没有成功。
关于网络安全配置的东西,<domain-config>
和<debug-overrides>
我都试过了。后者看起来像:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="@raw/selfsigned"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
但是,无论哪种情况,我都会收到验证错误。
我们究竟应该将什么作为 PEM 或 DER 文件作为原始资源放入,才能使这项工作正常进行?
这似乎适用于 N Developer Preview 2,使用问题中显示的 openssl
脚本生成的 example.crt
。目前,我假设 N Developer Preview 2 与 N Developer Preview 1 相比发生了变化,这说明了变化。