Openssl 在MobileFirst中使用SSL证书

Openssl 在MobileFirst中使用SSL证书,openssl,ibm-mobilefirst,mobilefirst-server,mobilefirst-studio,Openssl,Ibm Mobilefirst,Mobilefirst Server,Mobilefirst Studio,我正在使用MobileFirst版本6.3.0,我正在尝试将MobileFirst服务器设置为仅在https模式下运行。本质上,这意味着我需要在服务器端生成一个自签名证书,并在我的Android设备上安装该证书,应用程序才能工作 我已将MobileFirst服务器设置为仅在端口10443上运行,并且能够看到chrome浏览器(从我的android设备)能够访问https://:10443/worklightconsole,而不会警告我访问不受信任的网站[我将此视为在移动设备上正确安装了证书的确认

我正在使用MobileFirst版本6.3.0,我正在尝试将MobileFirst服务器设置为仅在https模式下运行。本质上,这意味着我需要在服务器端生成一个自签名证书,并在我的Android设备上安装该证书,应用程序才能工作

我已将MobileFirst服务器设置为仅在端口10443上运行,并且能够看到chrome浏览器(从我的android设备)能够访问
https://:10443/worklightconsole
,而不会警告我访问不受信任的网站[我将此视为在移动设备上正确安装了证书的确认]。但是,我看到我从MobileFirst生成的android应用程序无法连接到服务器(我不认为这是一个连接问题,因为当我使用
http://:10080
构建应用程序时,应用程序运行良好。只有当我使用
https://:10443
重新构建应用程序时,应用程序才会失败

我按照MFP文档中提到的说明创建了一个自签名证书[

让我详细说明我遵循的具体步骤:

服务器端更改:

  • 从server.xml中删除httpPort=“10080”,以便服务器仅在端口10443上运行
  • 为服务器创建自签名证书。我使用openssl生成自签名证书。首先,使用命令“openssl req-x509-nodes-days 365-newkey rsa:2048-keyout privateKey.key-out certificate.crt”创建证书和私钥文件
  • 接下来,使用命令“openssl pkcs12-export-in certificate.crt-inkey privateKey.key-out server.p12-passout pass:passServerP12-passin pass:passServer”创建一个密钥库文件,将证书和密钥压缩到一个文件中
  • 配置mfp服务器以使用我在上面生成的新密钥库。基本上,将server.p12文件复制到工作区目录下的“MobileFirstServerConfig\servers\worklight\resources\security”
  • 删除(或注释掉)server.xml中的
  • 确保在
    添加以下行
    
    
  • 使用设置为
    https://:10443
    的生成设置生成移动应用程序,并将其部署到mfp服务器中
  • 移动设备端更改:

  • 将证书(上面生成的certificate.crt)下载到移动设备上。安装文件并在设备上接受证书
  • 通过访问chrome浏览器上的
    https://:10443/worklightconsole
    ,确保移动设备和浏览器现在信任此证书。根据此处显示的屏幕截图,此步骤继续执行my:
  • 将应用程序下载到设备上,它应该开始通过https://:10443与服务器联系
  • 虽然上面的第2步对我来说效果不错,但第3步是不起作用的。从本质上说,chrome浏览器正在获取证书,而移动应用程序却没有


    在Eclipse中构建移动应用程序时,我需要做些什么,以便它能够获取可信(和自签名)的信息吗来自android设备的证书?

    以上步骤2验证浏览器信任您的服务器,但不验证设备信任您的服务器。设备和浏览器使用两种不同的信任存储和ssl逻辑(在某些情况下)


    Idan的问题与我的问题相同,你是如何“安装”根CA的?通过浏览器或通过设备的电子邮件或下载链接?如果是通过浏览器导入,则不会将其放在设备信任上,而您正需要它。

    你能添加一些更多信息吗?它是如何在设备中出现故障的?你看到了什么?哪个设备有故障del和Android版本?你是通过浏览器还是通过电子邮件安装证书的?我通过电子邮件附件的形式安装了证书。我在设备上下载了证书(Moto G上的Android棒棒糖)并且必须指定证书的名称。安装证书时的屏幕截图与回答Idan的问题时的截图完全相同,但也添加到了此处。Android版本为5.0.2,我使用的是Moto G。证书是通过电子邮件下载的,而不是通过浏览器下载的。我可以看到证书安装在设备上因为当我转到安全-->凭据存储-->受信任的凭据-->用户时,我看到了证书。在使用openssl命令创建证书时,我知道必须将服务器的ip地址作为“公用名”。其他参数是否有此类限制或最佳做法(如组织、单位等)?Bharathi,一般来说,我认为不建议使用IP地址。您应该在通用名称中使用主机名。并且在访问服务器的URL中使用主机名。如果必须使用IP,我认为您需要创建具有特定证书扩展名的证书,并在访问服务器的URL中使用IP。