AeroGear PushPlugin 和 cordova android 平台未找到证书路径的信任锚错误

Trust anchor for certification path not found error with AeroGear PushPlugin and cordova android platform

我正在使用 cordovaAeroGear PushPlugin 创建一个 android 应用程序它使用 https 与统一推送通信 server.I 在我的服务器中使用有效的 CA 证书支持 (TLS1.2)。

当使用 cordova run android return 执行时,我的设备出现此错误:

error javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

知道了,我在以下位置添加了证书:

platforms/android/res/raw/myCert.crt

而 config.xml 中的这个标签:

  <platform name="android">
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="myCert.crt" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    </platform>

我遵循了几个建议的解决方案,但对我的情况不起作用。

感谢您的帮助。

这是 UPS widfly 服务器中的证书生成问题。

如果您有由 trsut 提供商提供的证书颁发机构 CA

按照以下步骤操作:

1- 您必须首先使用以下命令将提供商提供的 PEM 证书转换为 p12:

$ openssl pkcs12 -export -out yourCertificategenerate.p12 -inkey yourCertificatekey.key  -in certifacteDelivedFromProvider.pem -certfile yourCertificateFromProvider.pem // file contains -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----)

2- 使用此命令创建本地密钥库 (yourCertificategenerate.jks),并使用此命令将其复制到 standalone/configuration 目录:

$ keytool -importkeystore -deststorepass yourpassword -destkeypass yourpassword -destkeystore yourNewCertificateGenerate.jks -srckeystore yourCertificateGenerate.p12 -srcstoretype PKCS12 -srcstorepass ""

检查认证链

openssl s_client -connect yourDomaine.com -debug

如果一切正常,你应该有这样的东西: