ArcGIS for Android 应用程序中如何加载自签名的地图服务?

已邀请:

张赛

赞同来自: 陈於立

以 ArcGIS for Server 10.1中启用了默认的自签名的Server站点中的服务为例,具体操作步骤如下:
Step 1:登录 ArcGIS for Server 的 Admin 页面导出默认的自签名证书
1) 登录 Admin 页面;
2)点击 Machines -> [机器名] -> sslcertificates -> selfsignedcertificate -> export 导出默认的自签名证书 SelfSignedCertificate.cer
Step 2:利用 KeyTool IUI 将 Step1中导出的自签名证书转换为 Android支持的BKS编码格式
1)打开 KeyTool IUI;
2)点击 View -> Select Task -> Create -> Keystore 打开 Create keystore 界面,选择 BKS 编码格式,选择 Keystore 文件的保存位置,可选地设置密码,完毕后点击 OK;
3)点击 View -> Select Task -> Import Keystore'entry -> Trusted certificate -> Regular certificate 在打开的对话框中设置 Source 和 Target。对于 Source,选择 DER,输入Step1 中导出的 cer 文件;对于 Target,勾选 BKS 编码格式,选择2)中创建的空的Keystore文件,可选地输入对应的密码;
4)点击Ok,一路确定获得最后的 bks 文件,如 myserversite.bks
在 ArcGIS for Android 应用程序中,将 myserversite 放置在 res下的 raw 新建文件夹中, 输入如下代码片段:
KeyStore keyStore = KeyStore.getInstance("BKS");
InputStream is = this.getResources().openRawResource(R.raw.myserversite);
keyStore.load(is, "***".toCharArray()); //此处的***是创建 bks 文件时所输入的密码。如果未设置密码,此处直接设为""
UserCredentials.setTrustStore(keyStore);
而后即可执行服务的加载。

yt_summer

赞同来自:

arcgis for Android 访问自签名证书的HTTPS网址的地图,如何直接忽略签名呢?我现在用证书,hostname不匹配,无法实现。

要回复问题请先登录注册