IOS移动设备管理无法安装配置文件

时间:2013-08-29 09:41:17

标签: ios mule mdm

我正在尝试设置从设备到服务器的MDM签入连接。在我的.mobileconfig中,我已经放入了来自凭证的身份,我通过钥匙串访问并使用.p12文件生成它。对于Server&登记网址 - https://address.To.Server:9769/mdm/

我在tomcat中托管我的服务器并启用了SSL,我使用keytools生成JKS, - “keytool -importkeystore -srckeystore client-cert.p12 -srcstoretype PKCS12 -destkeystore keystore.jks”

* client-cert.p12与我输入mobileconfig标识的.p12文件相同。

如果我没有弄错的话,IOS到服务器的所有请求都是使用HTTP PUT方法。我已经尝试直接从chrome浏览器访问我的服务器,并没有遇到任何问题。我相信这是证书问题,但我不知道发生了什么。

当我尝试从safari安装配置文件时,我收到了所有这些错误。

>Notice: (Error) MC: Connection to <server> failed with error: NSError:
Desc   : The server certificate for <server> is invalid.
US Desc: The server certificate for <server> is invalid.
Domain : MCHTTPTransactionErrorDomain
Code   : 23002
Type   : MCFatalError
Params : (
"<server>"
)

>Notice: (Error) MC: Cannot install MDM Mobile Device Management. Error: NSError:
Desc   : The payload Mobile Device Management could not be installed.
Sugg   : The server certificate for <server> is invalid.
US Desc: The payload Mobile Device Management could not be installed.
US Sugg: The server certificate for <server> is invalid.
Domain : MCInstallationErrorDomain
Code   : 4001
Type   : MCFatalError
Params : (
"Mobile Device Management"
)

>Desc   : The profile SilverlakeMDM could not be installed.
Sugg   : The payload Mobile Device Management could not be installed.
US Desc: The profile SilverlakeMDM could not be installed.
US Sugg: The payload Mobile Device Management could notbe installed.
Domain : MCProfileErrorDomain
Code   : 1009
Type   : MCFatalError
Params : (
SilverlakeMDM
)

以下是我的服务器控制台:

>httpsConnector.receiver.02 ERROR DefaultSystemExceptionStrategy:300 logException - Caught exception in Exception Strategy: Received close_notify during handshake
javax.net.ssl.SSLException: Received close_notify during handshake
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1821)
        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1922)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1059)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
        at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:848)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
        at sun.security.ssl.AppInputStream.read(AppInputStream.java:69)
        at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
        at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
        at org.mule.transport.http.HttpServerConnection.readLine(HttpServerConnection.java:219)
        at org.mule.transport.http.HttpServerConnection.readRequest(HttpServerConnection.java:185)
        at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:155)
        at org.mule.work.WorkerContext.run(WorkerContext.java:311)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

2 个答案:

答案 0 :(得分:1)

可能存在的问题,

  1. 首先检查您的CN。是的,它应该与域名匹配。如果您在本地计算机上进行测试,请确保在那里添加IP。

  2. 如果自我签名,请确保您使用根CA签署SSL证书。签名者应明确指出为根CA.

  3. 如果您使用的是RA证书,则还需要由根CA签名。

  4. 将签到和服务器URL实现为PUT方法。如果没有实现,只会出现此错误。

  5. 由于第4点,我也遇到了你的问题,并设法解决了这个问题。

答案 1 :(得分:0)

最有可能的是,它正是它提到的问题:“服务器证书无效。”。

可能是,它不是根证书(我不确定iOS会是怎么想的),或者您可能正在使用桌面支持的此证书中的不寻常内容,但iOS设备不支持。

尝试从iOS设备上的Safari访问您的服务器,看看它会说些什么。

另外,我假设您创建了一个配置文件,其中包含您事先安装的服务器证书。转到“首选项”并查看此配置文件。该证书应该说“受信任”。