Android Cordova SSL固定错误500:“;“请求中有一个错误”;

Android Cordova SSL固定错误500:“;“请求中有一个错误”;,android,cordova,ssl-certificate,cordova-plugins,pinning,Android,Cordova,Ssl Certificate,Cordova Plugins,Pinning,我正在尝试使用Cordova 5.3.3和Android通过以下插件进行SSL固定: 当我使用下面的函数启用固定并执行GET时,它会抛出一个错误500:“请求有一个错误”。(所有测试都是使用inspector在android设备内完成的) 如果我接受所有的证书,一切都正常,因为我重叠了固定的配置 window.cordovaHTTP.enableSSLPinning( true, function(res) {console.log("SSL pinning: " + res)

我正在尝试使用Cordova 5.3.3和Android通过以下插件进行SSL固定:

当我使用下面的函数启用固定并执行GET时,它会抛出一个错误500:“请求有一个错误”。(所有测试都是使用inspector在android设备内完成的)

如果我接受所有的证书,一切都正常,因为我重叠了固定的配置

window.cordovaHTTP.enableSSLPinning(
    true,
    function(res) {console.log("SSL pinning: " + res)},
    function(err) {console.log("SSL pinning: " + err)}
);

window.cordovaHTTP.acceptAllCerts(
    true,
    function(res) {console.log('Accept all certs: ' + res)},
    function(err) {console.log('Accept all certs: ' + err)}
);

window.cordovaHTTP.get(
    "https://95.85.12.4/test.json",
    {}, // optional params
    {}, // optional headers
    function(res) {console.log(res)},
    function(err) {console.log(err)}
);
我正在运行NGINX的服务器上进行此测试

我列出了所有内容(仅用于测试目的)


我还将AndroidManifest.xml中的可调试变量设置为true

<application android:debuggable="true">

我的证书是以DER格式和.cer扩展名自签名的。 我用openssl检查了证书是否正确。 如果我在我的机器上安装证书,打开服务器URL时没有问题 浏览器

证书位于我的Cordova项目中的/www/certificates文件夹中。 我还添加了.cer insinde/platforms/android/assets

有什么想法吗


谢谢

问题与证书格式无关。这是因为IP地址。如果不使用主机名发送请求,则需要创建一个具有SubjectAltName(SAN)的证书,如前所述。您必须将IP地址写入alt_名称。否则会出现“主机名xxx.xxx.xxx.xxx未验证”错误。

I尽管我的服务器中没有DER证书,但格式是PEM。我检查过了,NGINX无法处理DER证书。也许这就是问题所在?
<!-- Enable all requests, inline styles, and eval() -->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<application android:debuggable="true">