我们如何使用Android N网络安全配置获得自签名证书?

Com*_*are 20 ssl android android-7.0-nougat

我试图测试N Developer Preview的网络安全配置功能的所有方面.我有大部分工作,但我被自签名证书场景困扰.

根据文档,Android N应该对PEM或DER文件感到满意,因为它适用于其他证书验证方案.但是,我不使用自签名证书,并且我尝试使用此工作继续运行到证书路径验证异常中.

为了测试,我thin用作服务器,在我的开发机器上运行,可以通过N模拟器访问.自签名证书适用于我的开发机器上的浏览器,如果我切换到运行thinsans SSL,应用程序可以很好地到达服务器.所以,这不是连接问题.

我使用本网站上的说明创建了自签名证书:

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"
Run Code Online (Sandbox Code Playgroud)

根据此Stack Overflow回答,该example.crt文件是PEM文件.在其他地方,我看到了创建"组合PEM"文件的说明.但是,我尝试了这两个,没有运气.

在网络安全配置方面的东西,我曾经尝试都<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>
Run Code Online (Sandbox Code Playgroud)

但是,在任何一种情况下我都会得到验证错误.

作为原始资源,我们究竟应该将PEM或DER文件作为原始资源投入使用?

Com*_*are 7

这似乎是在使用example.crtopenssl问题中显示的脚本生成的N Developer Preview 2 .目前,我将假设N Developer Preview 2与N Developer Preview 1相比发生了变化.