android - WSO2 安卓代理证书

标签 android certificate wso2 mdm

我正在使用 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 个错误...这些需要解决吗?因为我按原样导出了项目。大多数警告指示未使用或弃用的方法。

  • 我按照说明设置了数据库,一切正常。
  • 启动服务器后,它会抛出:

ERROR - LifeCycleException while starting tomcat connector Caused by: org.apcahe.catalina.LifeCycleException: Service.getName(): "Catalina"; Protocol handler start failed ERROR - Error in initializing thrift transport ERROR - Failed to initialize Entitlement Service

而且 MDM 不起作用。

然而,当我返回并撤消客户端设置中的第 7 步,并将原始的 client-truststore.jks、wso2carbon.jks 和 wso2mobilemdm.jks 文件放入安全文件夹时,服务器启动时没有任何问题。 - 我可以访问 MDM 界面,创建角色和策略,并向我的设备发送电子邮件。 - 在我的设备上,我可以访问服务器,下载并安装apk。 - 问题在于应用程序和服务器无法通信。 “由于连接失败,身份验证失败,您要重试吗?”

所以我做了一些挖掘,可能的问题是由于以下之一:

  1. 存在连接问题。
  2. 证书不匹配。

1) 关于连接,这是我的设置:我正在运行通过 wifi 连接到我们公司网络的笔记本电脑 (localhost) 的服务器。然后我将我的设备连接到同一网络。为了访问在笔记本电脑上运行的“服务器”,我使用了笔记本电脑的 IP。 (因此我能够下载 apk)。该设备也已通过我们的代理清除。这是否是问题的可能原因?

2) 关于证书,我热心地按照说明进行操作。然而有一件事仍然困扰着我;当我导出我的项目时,Eclipse 要求一个“ keystore ”,然后我重新创建它。这会影响应用程序还是其他地方的问题?

最佳答案

原来我的问题出在我的证书上。这是我解决问题的方法:

  1. 我将 client-truststore.jks 和 wso2carbon.jks 复制到一个文件夹中。
  2. 在文件夹中,我使用以下代码创建了一个批处理文件并执行了它。 *为了使此代码起作用,您需要放置 BouncyCastel.jar - bcprov-ext-jdk15on-1.46.jar在您的 C:root 中复制文件并将其复制到程序文件下的 jre/ext 文件夹中。 还要确保安装了 SSL 并在环境变量中设置了 SSL,以及 java 的 keytool。
  3. 执行批处理文件时,确保密码设置正确; CA 设置为“cacert”,RA 设置为“racert”,IA 设置为“iacert”。 当您到达 KEYSTORE.p12、ca.p12 和 ra.p12 导出时,将它们的密码分别设置为“wso2carbon”、“cacert”和“racert”。 *请记住在设置证书的通用名称时使用您的服务器 IP。 *此外,当提示覆盖 client-truststore.jks 和 wso2carbon.jks 中的 wso2carbon 别名时,请说是。
  4. 接下来将 client-truststore.jks、wso2carbon.jks 和 wso2mobilemdm.jks 复制到您的/repository/resources/security,替换旧的。
  5. 将生成的 emm_truststore.bks 复制到您的应用程序中的 res/raw 文件夹,并更新 CommonUtilities.java 以反射(reflect)信任库密码(在本例中为“wso2carbon”,如果您愿意,可以在批处理文件中更改它)。
  6. iOS server example一样更新你的/repository/conf/mdm-conf.xml 文件在第 11 点。
  7. 最后,当您导出应用程序时,您可以使用 wso2mobilemdm.jks 来签署您的应用程序。

所有这些密码和别名都是为了简单起见,一旦了解了基本概念和工作原理,您就可以更改它们,只要所有更改都得到适当反射(reflect)即可。

 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 ./

关于android - WSO2 安卓代理证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509982/

相关文章:

angular - 将 AngularJS 应用程序与 WSO2 身份服务器集成

regex - WSO2 日志消息的 Logstash grok 模式

android - 如何使用带有字符串正文的 volley 发送 POST 请求?

android - 滚动时保留图像 "pinned"

java - 构建 NDK 共享库时导出 header

ios - 获取 SSL 证书详细信息

ssl - 如何共享多级证书

android - 如何为 Android 应用程序创建 TikTok/Musical.ly 的功能?

ios - 配置文件无效,但证书和 App ID 有效,这是为什么

wso2 - 将新用户添加到 Wso2 CEP 到 H2 数据库中