2014-07-11 83 views
1

我开发了一个应该使用基于X509的身份验证的项目。我遵循IBM Worklight入门模块开发此项目。这些步骤是,IBM Worklight 6.1中基于证书的身份验证X509

  1. 创建根CA
  2. 创建签名CA
  3. 创建服务器证书
  4. 服务器证书
  5. 出口的签名CA
  6. 导出PKCS12文件创建证书链用于服务器证书的PKCS12文件
  7. 为SSL配置IBM Websphere Liberty Profile

然后,我在authenticationConfig.xml文件中给出了模块中的登录模块,领域和安全测试详细信息。之后,我创造了一个挑战处理器的领域。我给了适配器程序的安全测试。

我已经在Android模拟器中使用ReamlB安装了根CA.然后我在Android模拟器中安装了该项目。尝试访问适配器过程时,它显示登录表单以输入凭据。我输入凭证作为'worklight',并输入登录名。但它显示了以下错误。 enter image description here
logcat消息是here

现在,我有两个疑问。

  1. 是否有任何默认证书可供使用,以便证书只接受该证书。
  2. 当我下载IBM Worklight Getting Started Module提供的示例项目时,它包含openssl.cnf文件和user_certificate_setup.sh文件。但是在模块中没有办法生成.sh文件并将其包含在项目中。

我面对的错误是什么,有什么线索!

在此先感谢!

+0

你可以发布Logcat中的日志来查看它显示的错误吗? –

回答

1

对不起,暂时不回答;显然这个问题与应用真实性有关,并且与用户证书认证没有直接关系。如果您在测试中使用应用真实性,请将其取出,并且应该可以正常工作。

+1

太棒了!这很奏效 – sasi

1

以下是一些可能导致其失败的情况,但正如我在评论中所说的,请张贴日志以便弄清楚失败的原因。

两种最可能的情况是,您的设备不信任服务器,或者证书未正确创建(特别是如果您使用中间CA,则可能是证书链的内置顺序不正确) 。

要排除第一种情况(设备不信任服务器),请编辑您的authenticationConfig.xml以使用户证书领域脱离安全测试。如果应用程序可以正确连接,那么设备实际上信任服务器的证书,但如果它无法连接,则意味着您没有正确配置设备以信任服务器。确保当您进入设置>安全>可信凭证>用户选项卡时,您可以看到您在那里创建的证书。如果您在那里看不到您的证书,则表示它尚未正确导入。这通常是因为您没有为Android导入正确的格式,这是一个扩展名为.crt的DER编码的证书文件。如果你有.pem或者。CER文件,你可以尝试做在终端下(对于Linux和Mac只;再看OpenSSL文档的Windows平台上类似):

openssl x509 -inform PEM -outform DER -in CA.pem -out CA.crt 

有关如何做到这一点的更多信息和截图,看看此处:http://www.jethrocarr.com/2012/01/04/custom-ca-certificates-and-android/另请注意,在本网站中,他们通过使用adb将证书从计算机推送到设备的证书,但出于测试目的,您可以将证书通过电子邮件发送给自己,或将其放入设备可下载的服务器中它从,然后打开设备内的附件/下载来安装它。这不是在生产环境中配置实际设备的安全方式,但出于测试目的,通过这种方式通常比通过ADB推送更容易。

如果您的设备正确信任服务器的证书,并且您可以在没有用户证书领域的情况下进行连接,那么这表明问题出在证书由签署CA创建,这通常发生在证书链不在正确的顺序。

这是一般性建议,但我需要查看日志才能告诉您确切的问题是什么。我在这里所说的大部分内容都可以在the User Certificate Authentication realm troubleshooting.And here is the rest of the User Certificate feature documentation中找到,以备将来参考。

此外,我不确定我是否理解“默认凭据”的含义,因为用户证书不需要您必须使用的特定凭证;如果您想测试而不必输入有效凭证,则可以使用非验证用户领域“登录”您的用户。

+0

我编辑了我的问题以显示logcat。 '默认凭证'的意思是,当我试图访问受保护的资源时,它要求输入用户名和密码[来自入门模块的示例应用程序],我将它作为'工作灯'提供。所以我怀疑是否需要提供任何其他用户名和密码才能访问受保护的资源。 – sasi

+0

当你得到logcat输出时,它是否显示相同的错误? logcat输出表示它已成功连接到服务器:它说:“response [httpS:// IPAddress:9443/worklight/apps/services/api/Authentication/android/init] success:/ * --secure- 07- 13 17:44:31.299:D /身份验证(660):{“userPrefs”:{},“WL-Authentication-Success”:“...成功意味着它对服务器正确认证,所以问题不在于认证部分。您是否尝试联系适配器或服务器中可能失败的其他内容? –

+0

是的,我想连接一个适配器。但是当我将securityTest添加到application-descriptor.xml时,它显示了同样的错误。 – sasi

相关问题