Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自签名证书的Android N网络安全配置使用什么?_Android_Ssl_Android 7.0 Nougat - Fatal编程技术网

自签名证书的Android N网络安全配置使用什么?

自签名证书的Android N网络安全配置使用什么?,android,ssl,android-7.0-nougat,Android,Ssl,Android 7.0 Nougat,我正在尝试测试N开发者预览版的网络安全配置功能的所有方面。我的大部分工作正常,但我被自签名证书场景难住了 据介绍,安卓N应该乐于使用PEM或DER文件,就像其他证书验证场景一样。然而,我并不经常使用自签名证书,并且我尝试使其工作时不断遇到证书路径验证异常 为了进行测试,我使用thin作为服务器,运行在我的开发机器上,可以通过N模拟器访问。自签名证书适用于我的开发机器上的浏览器,如果我切换到运行thinsanssl,应用程序可以很好地到达服务器。所以,这不是一个连接问题 我使用以下说明创建了自签名

我正在尝试测试N开发者预览版的网络安全配置功能的所有方面。我的大部分工作正常,但我被自签名证书场景难住了

据介绍,安卓N应该乐于使用PEM或DER文件,就像其他证书验证场景一样。然而,我并不经常使用自签名证书,并且我尝试使其工作时不断遇到证书路径验证异常

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

我使用以下说明创建了自签名证书:

根据,example.crt文件是一个PEM文件。在其他地方,我看到了创建的说明。然而,我尝试了这两个,没有运气

在网络安全配置方面,我尝试了
。后者看起来像:

<?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
脚本生成的
示例.crt
。目前,我将假设N Developer Preview 2与N Developer Preview 1相比发生了变化。您是否添加了
android:debuggable=true
?@PrerakSola:我正在测试一系列的产品风格,但是我总是使用
debug
作为构建类型。我通过生成您概述的自签名证书尝试了这一点,并且成功了。我复制了example.crt文件,将其放入原始资源文件夹,并删除了扩展名。我认为唯一的区别是我在本地运行Tomcat作为web服务器。需要仔细检查的一点是,您已将元数据元素添加到
AndroidManifest.xml
文件中。证书使用了xml文件中的
中的任何一个。@GeorgeMulligan:出于好奇,您是否在N Developer Preview 2(NDP2)或NDP1上试用过它?当我发布这篇文章时,我正在NDP1上测试。现在,有了一个新的带有NDP2的仿真器,它可以使用普通的CRT文件(而不是“组合PEM”文件)。文件扩展名似乎并不重要——它可以使用或不使用,这是有意义的,因为它是一个原始资源。谢谢你朝正确的方向踢@IgorGanapolsky:它是问题中显示的
openssl
命令管道的输出。
<?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>