WSO2 MDM iPhone 配置文件安装问题(无效的 DER 编码,未结束)

2024-01-14

我正在为 iPhone MDM 使用 WSO2(3.2.0) IOT 服务器,并按照网站中的说明安装它

我生成了 MDM APNS 证书 并将其添加到服务器上的 ios 配置中。

在为 MDM 注册 iPhone (iphone 6) 时,我在 iPhone 和 wso2 服务器 (3.2.0) 上配置文件安装失败,出现以下错误,但配置文件安装在 iphone x 模拟器中运行良好。

我在安装第二个配置文件(针对 MDM 设备身份证书)时收到此错误

[2018-04-03 17:17:53,672] [IoT-Core] ERROR - {org.wso2.carbon.certificate.mgt.cert.jaxrs.api.impl.CertificateManagementAdminServiceImpl} Error occurred while converting PEM file to X509Certificate.
org.wso2.carbon.certificate.mgt.core.exception.KeystoreException: CertificateException when decoding certificate signature
    at org.wso2.carbon.certificate.mgt.core.impl.CertificateGenerator.extractCertificateFromSignature(CertificateGenerator.java:415)
    at org.wso2.carbon.certificate.mgt.core.service.CertificateManagementServiceImpl.extractCertificateFromSignature(CertificateManagementServiceImpl.java:114)
    at org.wso2.carbon.certificate.mgt.cert.jaxrs.api.impl.CertificateManagementAdminServiceImpl.verifyCertificate(CertificateManagementAdminServiceImpl.java:241)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188)
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104)
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204)
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101)
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.wso2.carbon.certificate.mgt.cert.jaxrs.api.util.ApiOriginFilter.doFilter(ApiOriginFilter.java:33)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:124)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
    at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
    at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
    at org.wso2.carbon.webapp.authenticator.framework.WebappAuthenticationValve.processRequest(WebappAuthenticationValve.java:151)
    at org.wso2.carbon.webapp.authenticator.framework.WebappAuthenticationValve.invoke(WebappAuthenticationValve.java:69)
    at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
    at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
    at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
    at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1729)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.security.cert.CertificateParsingException: java.io.IOException: ObjectIdentifier() -- Invalid DER encoding, not ended
    at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169)
    at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1804)
    at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:195)
    at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:102)
    at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
    at org.wso2.carbon.certificate.mgt.core.impl.CertificateGenerator.extractCertificateFromSignature(CertificateGenerator.java:395)
    ... 62 more
Caused by: java.io.IOException: ObjectIdentifier() -- Invalid DER encoding, not ended
    at sun.security.util.ObjectIdentifier.check(ObjectIdentifier.java:611)
    at sun.security.util.ObjectIdentifier.<init>(ObjectIdentifier.java:266)
    at sun.security.util.DerInputStream.getOID(DerInputStream.java:315)
    at sun.security.x509.AVA.<init>(AVA.java:602)
    at sun.security.x509.RDN.<init>(RDN.java:245)
    at sun.security.x509.X500Name.parseDER(X500Name.java:802)
    at sun.security.x509.X500Name.<init>(X500Name.java:306)
    at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:659)
    at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:167)

我最终合并的 .pem 文件如下所示。

-----BEGIN CERTIFICATE-----
//encoded string
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
//encoded string
-----END RSA PRIVATE KEY-----

我们使用最新版本的服务器(即 wso2 iot 服务器 3.3.0)和适用于 ios(3.3.0)的最新 p2-repo 解决了这个问题。

我们发现,无论您的 wso2 服务器版本是什么,wso2 总是会向您邮寄 3.1.0 版本的 ios p2-repo,其中包含上述错误。我们使用最新的服务器(wso2 iot 3.3.0)切换到 3.3.0 p2-repo,问题得到解决

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSO2 MDM iPhone 配置文件安装问题(无效的 DER 编码,未结束) 的相关文章

随机推荐

  • 覆盖变量内容javascript

    如果您有一个包含敏感数据的变量集 var secretPassword myPa sW0rd 然后你覆盖它 secretPassword 0000000000 JavaScript 引擎是否为新数据分配新内存 数据 myPa sW0rd 是
  • 将数据行值转换为字符串?

    我有一个名为 结果 的数据集 其中包含几行数据 我想将这些数据放入字符串中 但我不太清楚该怎么做 我正在使用下面的代码 string output foreach DataRow rows in results Tables 0 Rows
  • 类型错误:无法读取未定义的属性“成员”

    我今天开始从 Angular 4 4 4 升级到 5 1 1 我还必须升级许多其他依赖于 Angular 的软件包 我收到一个错误 上下文如此之少 以至于我不知道从哪里开始 还有其他人看到过这个并知道问题是什么吗 ng serve aot
  • Hibernate 4.0.0Final SessionFactory.openSession(Interceptor拦截器)在哪里

    我尝试一些代码hibernate 4 0 拦截器 http docs jboss org hibernate core 4 0 manual en US html events html objectstate interceptors 它
  • 限制某些用户而不是其他用户对 Cloudfront(S3) 文件的访问的简单示例

    我刚刚开始了解 AWS S3 和 Cloudfront 的权限 所以请放心 两个主要问题 我想允许某些用户访问 例如 已登录的用户 但是not其他的 我假设我需要使用 ACL 而不是存储桶策略 因为前者更具可定制性 您可以使用查询参数识别
  • 在 C# 中使用 List(泛型)

    这是一个非常基本的问题 但我以前从未深入研究过泛型 但我发现自己需要使用它 不幸的是 我现在没有时间阅读任何教程 而且到目前为止我发现的相关问题的答案并不是人们可以称之为基本的 所以我们开始 假设我有以下内容 List
  • 如何重复格拉布斯检验并标记异常值

    我想对一组数据重复应用格鲁布斯测试 直到它不再发现异常值 我希望标记异常值而不是删除异常值 以便我可以将数据绘制为直方图 其中异常值具有不同的颜色 我已使用异常值包中的 grubbs test 来手动识别异常值 但无法弄清楚如何循环它们并成
  • 从 Map 的列表表示到 Scala 中的真实 Map

    我想将键 值的 Seq 转换为 Map 序列的第一个元素被保留 所以对列表从位置 1 开始 问题是 是否可以用更实用的方式来实现这个功能 def list2Map plainMap Seq String var map Map String
  • 简单 Odata 客户端 - 如何在每个请求标头中添加 oAuth 令牌?

    在 Microsoft oData v4 代理客户端中 有一个选项可以将身份验证令牌添加到每个请求中 可以通过以下方式实现 var container new Default Container new Uri http localhost
  • 在不同类型的函数中使用 andThen 进行归约

    我想以编程方式组合多个函数 如果这些函数都是同一类型 我可以执行以下操作 def a x Int Int x 1 def b y Int Int y 2 def c z Int Int z 4 val f1 a andThen b andT
  • 在 java 中处理大字符串时 StringBuilder 内存不足错误

    我从String test str where test呈指数级增长 包含成千上万个字符 运行时间为 45 分钟 可能是因为创建大字符串和删除垃圾 然后我像这样错开输入 使其达到 30 秒 这似乎是一种廉价的方法 但效果很好 if seco
  • 错误 324(net::ERR_EMPTY_RESPONSE)

    我现在在我们的许多网站上经常遇到上述问题 大约一个月前这些网站工作正常 但突然有超过 10 个网站不仅在 crome 中出现此错误 而且在其他浏览器中也出现此错误 不相同但相关 Error 324 net ERR EMPTY RESPONS
  • getExternalStorageDirectory 不可用时的后备解决方案?

    我目前使用Environment getExternalStorageDirectory 获得一个可以临时存储一些数据的位置 然后在使用后被删除 该数据的范围为 1 100MB 这工作正常 但在某些情况下 外部存储的状态被删除或卸载等 并且
  • 如何将此类编写为完全通用并根据一个请求返回不同的响应?

    我被要求为应用程序创建一系列报告 并且一如既往 我正在寻找减少编写代码量的方法 我已经开始尝试想出最简单的方法来请求一份报告 这是我的想象 var response ReportGenerator Generate Reports Repo
  • 如何从联系人框架获取帐户名称

    我们知道iOS中的联系人可以从Google iCloud and Phone 好吧 我们可以使用以下方法获取一堆联系人Contacts framework 但我想知道它属于哪个帐户 我的意思是 我需要区分电子邮件和电话同步联系人 有什么办法
  • 使用 std::cin 初始化 const 变量有什么技巧吗?

    常见 std cin 用法 int X cin gt gt X 这样做的主要缺点是 X 不能const 很容易引入bug 我正在寻找一些技巧来创建一个 const 值 并只写入一次 天真的解决方案 Naive int X temp cin
  • Mamp 本地主机解析速度非常慢

    当我对 PHP WordPress 网站进行本地更改时 本地主机似乎在 20 30 分钟内没有更新 我使用的是 Mac OSX 10 8 4 并使用 MAMP Pro 我有两个网站 我为它们创建了单独的主机条目 我们称它们为mysite1
  • Windows shell:如何获取音频设备名称?

    我不确定这是否严格来说是一个编程问题 只要我 不介意使用额外的软件来解决问题 只要它保持可编写脚本或命令行即可 这是 非 GUI 解决方案 不管怎样 我已经发布了另一个 有点不同 问题超级用户 https superuser com que
  • 将字符串转换为整数十六进制值“奇怪”行为

    我注意到java不允许我存储大量数字 例如 2000000000 即 20 亿显然是整数类型 但如果我存储相应的十六进制值 即int largeHex 0x77359400 这可以 所以我的程序需要增加到 2 32 刚刚超过 42 亿 我测
  • WSO2 MDM iPhone 配置文件安装问题(无效的 DER 编码,未结束)

    我正在为 iPhone MDM 使用 WSO2 3 2 0 IOT 服务器 并按照网站中的说明安装它 我生成了 MDM APNS 证书 并将其添加到服务器上的 ios 配置中 在为 MDM 注册 iPhone iphone 6 时 我在 i