我正在使用WSO2的企业移动管理器尝试将设备连接到它。
我已按照WSO2文档中的所有说明进行操作。这就是我所做的:
其中包括根据我在iOS Server Configurations中创建的证书创建.bks文件。我完成了第2,3,4,5,6,7和11步。
然后我按照git的说明使用ca_cert.pem和ca.p12来创建一个.bks文件,我将其重命名为emm_truststore.bks并按照说明添加到我的项目中。
客户端仍然有159个警告和0个错误......这些是否需要解决?因为我按原样导出了项目。大多数警告表示不使用或弃用的方法。
错误 - 启动tomcat连接器时出现LifeCycleException 引起:org.apcahe.catalina.LifeCycleException:Service.getName():" Catalina&#34 ;;协议处理程序启动失败 错误 - 初始化节俭运输时出错 错误 - 无法初始化权利服务
MDM不起作用。
然而,当我回去并撤消客户端设置中的步骤7,并将原始client-truststore.jks,wso2carbon.jks和wso2mobilemdm.jks文件放在安全文件夹中时,服务器启动时没有任何hickup。 - 我可以访问MDM界面,创建角色和策略,并向我的设备发送电子邮件。 - 在我的设备上,我可以访问服务器,下载并安装apk。 - 问题在于应用程序和服务器无法通信。 "由于连接失败而导致身份验证失败您想再试一次吗?"
所以我做了一些挖掘,可能出现的问题是由于以下原因之一:
1)关于连接这是我的设置:我正在运行我的笔记本电脑(localhost)的服务器,它通过wifi连接到我们公司的网络。然后我在同一个网络上连接我的设备。为了到达服务器'在我的笔记本电脑上运行,我利用笔记本电脑的IP。 (因此我能够下载apk)。该设备也已通过我们的代理清除。这是否可能导致问题?
2)关于证书,我热心地遵循了指示。然而有一件事仍困扰着我;就是当我导出我的项目时,Eclipse要求一个' keystore'然后我重新创建。这会影响应用程序还是其他地方的问题?
答案 0 :(得分:2)
结果证明我的问题与我的证书有关。以下是我解决问题的方法:
所有这些密码和别名都是为了简化而使用的,一旦理解了基本概念和工作原理,只要所有更改都得到适当反映,您就可以更改它们。
openssl genrsa -out ca_private.key 4096
openssl req -new -key ca_private.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca_private.key -out ca.crt -extensions v3_ca
openssl rsa -in ca_private.key -text > ca_private.pem
openssl x509 -in ca.crt -out ca_cert.pem
openssl genrsa -out ra_private.key 4096
openssl req -new -key ra_private.key -out ra.csr
openssl x509 -req -days 365 -in ra.csr -CA ca.crt -CAkey ca_private.key -set_serial 02 -out ra.crt -extensions v3_req
openssl rsa -in ra_private.key -text > ra_private.pem
openssl x509 -in ra.crt -out ra_cert.pem
openssl genrsa -out ia.key 4096
openssl req -new -key ia.key -out ia.csr
openssl x509 -req -days 730 -in ia.csr -CA ca_cert.pem -CAkey ca_private.pem -set_serial 044324343 -out ia.crt
openssl pkcs12 -export -out KEYSTORE.p12 -inkey ia.key -in ia.crt -CAfile ca_cert.pem -name "wso2carbon"
openssl pkcs12 -export -out ca.p12 -inkey ca_private.pem -in ca_cert.pem -name "cacert"
openssl pkcs12 -export -out ra.p12 -inkey ra_private.pem -in ra_cert.pem -chain -CAfile ca_cert.pem -name "racert"
keytool -importkeystore -srckeystore KEYSTORE.p12 -srcstoretype PKCS12 -destkeystore wso2carbon.jks
keytool -importkeystore -srckeystore KEYSTORE.p12 -srcstoretype PKCS12 -destkeystore client-truststore.jks
keytool -importkeystore -srckeystore ca.p12 -srcstoretype PKCS12 -destkeystore wso2mobilemdm.jks
keytool -importkeystore -srckeystore ra.p12 -srcstoretype PKCS12 -destkeystore wso2mobilemdm.jks
set CLASSPATH=%CLASSPATH%;c:\bcprov-ext-jdk15on-1.46.jar
keytool -importcert -trustcacerts -keystore emm_truststore.bks -storetype bks -storepass wso2carbon -file ca_cert.pem -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath ./
答案 1 :(得分:0)
好的,我认为从你的描述看,你在第一部分设置jks文件时遇到了问题。在文档中,您必须创建SSL证书。还有CA证书。然后,您需要确保SSL证书需要由CA签名。这样,当您将CA嵌入到bks文件中时,它将识别通信,因为下划线SSL通道与该CA签名的SSL证书一起运行。我认为你在第一阶段搞砸了wso2carbon.jks的关键重要性。确保使用现有别名正确导入它。如果更改别名,则需要更改更多文件。确保它与我们在repository / conf文件夹中的mdm-config.xml中提供的别名相同。同样的事情也需要导入客户端信任库。如果这是正确的,它将起作用。授权问题与此证书问题有关,无法识别有效的SSL证书。
从编译方面来看,我不认为这是一个问题,但最好安装最新的Android SDK。
关于你的第二次尝试,它与证书有关。 wso2mobilemdm.jks附带预生成的CA.服务器将使用此功能。但是为了使它与客户端一起工作,您需要从CA中获取密钥库文件。为此,您可以使用OpenSSL并获取CA并将其嵌入您生成的bks文件中。另一件事是你可以使用这个相同的jks文件并使用portecle进行转换。这样您就可以简单地使用现有的。
尝试设置的最简单方法是使用HTTP而不是HTTPS来传达您的Android代理应用。这样它可以工作但不推荐。这只是为了测试包装是否完美。为此,您可以更改Android代理应用程序中的配置条目,即使您没有任何条目,它也可以正常工作。
希望这会有所帮助。让我知道这是否适合您。