Monthly Archives: February 2014

Portal for ArcGIS多机部署并进行内容目录迁移的简要步骤

  以下内容假设你已经成功在单机环境下部署过下述软件。
  目标:在多台机器上分别部署ArcGIS for Server,Portal for ArcGIS,ArcGIS Web Adaptor等软件,达到Portal正常运行,软件角色物理分离,能够投入生产的目的。

  具体环境:4台Windows Server 2008 R2 SP1机器,提前设置fully qualified domain name (FQDN),

  • 192.168.220.182 wa.newnaw.com,可通过外网域名访问到该机器。部署ArcGIS Web Adaptor v10.2.1,配置共享存储\waarcgisserver,供ArcGIS for Server使用(config-store,server directories),配置共享存储\waarcgisportal,供Portal for ArcGIS使用,部署PostgreSQL v9.2.2,供建立SDE Geodatabase,作为ArcGIS for Server的data store使用。注:若硬件资源允许,理论上上述两个共享存储位置及SDE GDB应设置在独立的机器上;
  • 192.168.220.183 portal.esrichinacp.com,内网机器。部署Portal for ArcGIS v10.2.1;
  • 192.168.220.184 ags1.esrichinacp.com,内网机器。部署ArcGIS for Server v10.2.1;
  • 192.168.220.185 ags2.esrichinacp.com,内网机器。部署ArcGIS for Server v10.2.1;

  此次部署四台机器的防火墙均为开启状态。简便起见,也可将183,184,185三台只能内网访问的机器防火墙关闭,免去设置端口例外的麻烦。
image   部署完成后,可在外网通过wa.newnaw.com域名访问Portal for ArcGIS门户网站,并可发布托管服务到hosting server site(184,185集群)上;Portal运行或处理请求过程中,183,184,185的机器ip及域名对最终用户均透明不可见。

  大致步骤:

  1. 在wa机器上安装postgresql 9.2.2;
  2. 在wa机器上建立c:arcgisserver文件夹,创建用户arcgis/arcgis。并共享c:arcgisserver,网络和ntfs权限里均赋予arcgis用户对该文件夹的完全控制权限;
  3. 在ags1,ags2上安装arcgis 10.2.1 for server,系统用户为arcgis/arcgis。ags1,ags2两台机器上防火墙均开启,均添加6080,6443,4000-4004端口为例外;在两台机器上均安装pgsql的64位客户端。注:config-store和directories目录填写时用的都是ip的unc地址,并且加入已有站点时,填的也是ags1的ip:6080;
  4. 给ags站点添加managed database。利用arcmap的gp工具,在wa机器(防火墙开5432端口,修改pg_hba.conf文件重启服务允许任何客户端连接,拷贝st_geometry到lib目录下)上创建sde geodatabase;在ags1,ags2的site的data store中添加该sde作为managed database;
  5. 在访问ags1的site admin界面,将站点的protocol从http only改为http or https;
  6. 在portal机器上安装portal,全部默认设置;portal机器防火墙开7080,7443两个端口;登陆http://portal.esrichinacp.com:7080/arcgis/home/,创建初始管理员;注:目前Portal在安装时只能指定本地路径为工作目录,将工作目录迁移到\waarcgisportal的工作会在以下步骤中完成;
  7. 在wa机器的IIS上,绑定之前申请好的wa.newnaw.com的ssl证书到443端口,安装web adaptor,配置portal机器上的portal。使得portal门户网站可以正常访问,访问地址为http://wa.esrichinacp.com/arcgis/home;
  8. 为了让用户访问地图服务时,不暴露出最终的ags ip地址,所以必须给ags也配置adaptor。在wa机器上给ags站点配置web adaptor;
  9. 访问portal的组织管理,设置federated server和hosting server:
    image image
  10. 测试。发布hosted feature service正常,但在wa机器上访问item页面时请求有错,
    image 是通过wa机器的代理页面无法访问到ags1的6443端口。ags1的6443端口使用的是安装ArcGIS for Server时,内置tomcat自动生成的自签名证书,所以在wa机器上访问该证书并设置为受信任根证书办法机构即可,对于ags2的6443端口证书也做同样操作。再次测试,发布hosted feature service/hosted tiled map service均工作正常。所有请求都是通过wa.esrichinacp.com地址暴露出来的,从请求的url看不到portal,ags1及ags2三台机器的ip与域名;

  至此完成软件部署工作。接下来将之前Portal的内容目录迁移到wa机器的共享路径中,此处我们继续使用以前Portal门户的所有内容。步骤如下:

  • 拷贝之前Portal的工作目录arcgisportal到wa机器上的c:arcgisportal;
  • 在wa和portal机器上都建立本地账户arcgis/arcgis;
  • 共享c:arcgisportal为\waarcgisportal,并赋予arcgis账户共享中读写和本地安全中读写的权限;
  • 在portal机器上停止portal服务,修改服务运行账户为本地arcgis账户(默认的“本地系统账户”无法访问共享路径);
  • 在portal机器上赋予arcgis账户对portal安装目录C:Program FilesArcGISPortal的读写权限;并修改C:Program FilesArcGISPortalframeworketcportal-config.properties文件中一行为(注意是正斜杠“/”):
    dir.data=//wa/portalshared;
  • 在http://wa.esrichinacp.com/arcgis/portaladmin中,将content,db,index,logs,temp5个目录都修改为对应的共享路径,如: \waportalsharedcontent等;
  • 重启portal服务,可直接用原来的账户登录。原先所有用户及其对应内容,Group,共享关系等依然保留;新建item,发现已经存储在新的共享路径了。

  注:内容目录按上述步骤迁移后,所有设置均为原先设置(因为内容目录中包含数据库存储文件,内容未做任何修改)。比如hosting server site原先地址为:http://oldags.xxx.com:6080,在新环境下会失效。所以对于这些设置,以管理员身份登陆后需要修改为新的有效地址。

在startssl.com申请免费的ssl证书并导入IIS进行使用

  如果网站需要提供https加密访问方式,那么必须拥有一个有效的ssl证书来向客户端证明自己的身份。而ssl证书通常由第三方机构签发,有Domain Validation (DV), Organisation Validation (OV) 和 Extended Validation (EV)三种级别,分别对应由低到高的三种认证级别,DV比较宽松,EV最严格。认证方式不同,价格也不同。比如DV级别的证书,StartSSL可免费申请一年GeoTrust是149$每年Godaddy是69.99$每年我国的万网价格是4200¥每年。个人使用当然是StartSSL提供的证书性价比最高,虽然免费,但依然在Chrome,Firefox,IE等主流浏览器的内置受信任根证书颁发机构里面,如果是商业或机构使用,可选择顶级的证书颁发机构(当然不包括万网之流),彰显身份。下面就说明如何在startssl.com上申请免费证书,并部署到IIS上进行使用的步骤。

1. 首先需要在startssl.com上进行注册。该网站采用的是客户端证书认证方式,所以注册的过程就是填写自己的资料,邮件接收验证码,之后获得并在浏览器中安装StartSSL生成的一个客户端证书。这样以后以自己身份登录startssl.com时,就需要从安装了上述步骤证书的浏览器里直接访问startssl.com,而不需要输入用户名密码了。这个身份验证证书丢失后,只能重新注册,所以建议将该证书备份,具体步骤见How do I backup my client certificates。备份好后,可将该证书安装到其他计算机或浏览器,便于登陆startssl.com。

2. 注册之后,若要给某个域名申请证书,需要对域名进行验证,证明你是这个域名的拥有者才行。StartSSL采用的是域名拥有者邮箱验证,所以在Validations Wizard里选择Domain Name Validation,按照向导完成验证即可。

3. 接下来就是给通过验证的域名申请ssl证书。在Certificates Wizard中选择Web Server SSL/TLS Certificate,然后会进入创建私钥(Generate Private Key)步骤。
image   由于SSL/TLS采用的是非对称加密,所以必须私钥和公钥配合才能建立正确的安全连接。私钥由服务器端持有,保密,私有;公钥包含在客户端访问https网站时看到的证书内,公开,当客户端访问时即获得之。公钥和私钥正确配对后方可建立安全连接。填入对私钥文件保护的10位以上密码,继续,
image   即可得到一段加密文本,将该文本保存为.key的文件,比如privatekey.key,作为私钥保存好。这里你也可以预先利用openssl工具或IIS向导来生成包含自己额外信息,并且包含私钥的证书申请(.csr文件),这样就可以跳过Generate Private Key这步了。之后选择要为哪个域名创建证书,并且输入一个子域名,最终申请的证书会作用在这个子域名上。
image   StartSSL的免费证书只能给一个子域名用,若想为多个子域名申请证书或申请通配符形式的证书,则需要掏钱购买他们提供的class2级证书了。继续下一步,确认之后,可以得到一段文本,该文本便是StartSSL颁发给你网站的经过签名的证书,将其另存为.crt文件,比如ssl.crt(此证书即是网站客户端访问https连接时能够得到的文件,实质是包含了公钥,服务器名称,CA认证签名及其他信息的文件)。此外在该界面上最好根据提示,保存下来一个中间(intermediate)证书文件sub.class1.server.ca.pem,有的地方可能会用到。
  到此,我们得到了一个privatekey.key的私钥文件,一个ssl.crt的证书文件(包含公钥),一个sub.class1.server.ca.pem中间证书文件。在给自己的网站配置ssl.crt公有证书文件之前,我们还需生成两个在其他地方可能会用到的文件。第一个是经过解密的私钥文件(decrypted private key),比如在Nginx部署证书时需要用到。此步骤可通过openssl工具或startssl.com网站提供的Toolbox–>Decrypt Private Key工具完成,将结果保存为decryptedprivatekey.key。第二个是PKCS#12存档文件(*.pfx或*.p12),实质是包含了.crt证书文件所有内容,私钥以及加密信息的文件,而在IIS中部署时就需要用到此文件。可利用startssl.com网站提供的Toolbox–>Create PKCS#12 (PFX) File工具,传入私钥文件privatekey.key及证书文件ssl.crt后,生成之,保存为pfxarchive.p12。
4. 在域名所对应的计算机上部署该证书,此处以IIS为例。操作过程很简单,在IIS根节点的服务器证书功能中,右键,导入,根据向导输入刚才得到的pfxarchive.p12文件即可,
image   最后,在IIS网站绑定中,指定443端口使用我们导入的证书即可。
image   这样,在以https访问此网站时,就能够看到我们申请的证书了。
image
参考文章: