我正在尝试设置从设备到服务器的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)
答案 0 :(得分:1)
可能存在的问题,
首先检查您的CN。是的,它应该与域名匹配。如果您在本地计算机上进行测试,请确保在那里添加IP。
如果自我签名,请确保您使用根CA签署SSL证书。签名者应明确指出为根CA.
如果您使用的是RA证书,则还需要由根CA签名。
将签到和服务器URL实现为PUT方法。如果没有实现,只会出现此错误。
由于第4点,我也遇到了你的问题,并设法解决了这个问题。
答案 1 :(得分:0)
最有可能的是,它正是它提到的问题:“服务器证书无效。”。
可能是,它不是根证书(我不确定iOS会是怎么想的),或者您可能正在使用桌面支持的此证书中的不寻常内容,但iOS设备不支持。
尝试从iOS设备上的Safari访问您的服务器,看看它会说些什么。
另外,我假设您创建了一个配置文件,其中包含您事先安装的服务器证书。转到“首选项”并查看此配置文件。该证书应该说“受信任”。