为 AX 服务器安装安全证书
从证书机构 (CA) 安装一个证书,替换用于确保 AX 服务器和客户端应用程序之间 SSL 连接安全的默认自签名证书。
工具和必备知识
此任务需要您使用 Oracle 的 keytool 实用程序管理密钥和证书。关于 keytool 实用程序的详细信息,请参阅 Oracle keytool 文档。
要成功完成这项任务,您也应该熟悉使用安全证书和 Java 密钥库技术︰
- 安全证书用来证明公钥所有权的电子文档。证书包括密钥信息、其拥有者的身份信息,以及已经验证证书内容正确无误的实体的数字签名。要了解更多信息,请参考 安全证书
- Java 密钥库 存储安全证书以及以 SSL 加密的相应私钥的存储库。要了解更多信息,请参阅 Oracle:创建密钥库
开始之前,备份 TomEE 应用程序服务器的配置
- 在 Windows 资源管理器中,在用于更新密钥库配置的 Analytics Exchange 服务器应用程序的安装目录中打开 TomCat\conf 子文件夹。
- 将 conf\tomee.xml、conf\server.xml 和 conf\system.properties 文件复制到某个安全的备份位置。
若在配置安全证书过程中遇到任何问题,您都可以通过如下方法来恢复原配置:停止 ACL Analytics Exchange 服务,恢复这些文件,然后重新启动服务。
服务器端流程
提示
将 Java bin 子目录添加到操作系统的 PATH 环境变量中,这样就可以使用 keytool 命令而无须指定完整路径。要将该子目录添加到会话路径,请执行Set PATH=<java bin 路径>;%PATH%。
如果您使用的是 PFX 证书文件,则可以使用一个 keytool 命令将其转换为具有私钥的密钥库:
keytool -importkeystore -srckeystore 您的 pfx 文件.pfx -srcstoretype pkcs12 -destkeystore cientcert.jks -deststoretype JKS
创建新密钥库
- 在服务器上打开命令提示窗口。
- 使用以下语法创建新的密钥库:
keytool -genkeypair -alias <别名> -keyalg RSA -keystore <密钥库文件名>
示例 keytool -genkeypair -alias AX_store -keyalg RSA -keystore myAxKeystore
- 回答出现的每一个问题:
字段 示例 您的名字和姓氏是什么? 说明
对这一问题,您必须输入您的 AX 服务器实例的主机名。
axserver.ax.com 您的组织单位名称是什么? 采购 您的组织名称是什么? 示例公司 您所在城市或地区的名称是什么? 库比蒂诺 您所在州或省的名称是什么? CA 此单元的两字母国家代码是什么? US <CN=axserver.ax.com, OU=采购, O=示例公司, L=库比蒂诺, ST=加州, C=US> 对吗? y 按回车键使用与密钥库相同的密码,或指定新密码并按回车键。
在新密钥库上生成证书签名请求(CSR)
说明
如果您使用现有的证书,跳过此节。
如果您已从商业 CA(例如 VeriSign)购得安全证书,请查阅他们提供的文档来了解配置密钥库的信息。使用以下语法创建 CSR:
keytool -certreq -alias <别名> -keyalg RSA -file <csr 输出文件> -keystore <密钥库文件名>
结果您现在有一个文件,可以用于从证书颁发机构请求证书。
导入 CA 证书到密钥库
如果您的证书因格式(如 PKCS12)问题无法导入密钥库,且无法转换为 PEM 格式,请联系“支持”,获得与在 Tomcat 中配置证书有关的帮助。
- 根据使用的 CA,可能需要在密钥库中导入中间证书和/或根证书。使用下列语法,导入其中的一个证书或将两个都导入:
keytool -import -alias <别名> -keystore <密钥库文件名> -trustcacerts -file <证书文件名>
如果将两个证书都导入,则为每个证书指定的别名应唯一。需要先导入根证书,然后再次运行 keytool 命令导入中间证书。
- 使用以下语法导入安全证书:
keytool -import -alias <别名> -keystore <密钥库文件名> -trustcacerts -file <证书文件名>
指定的别名必须与生成密钥库时指定的值相同。导入的证书将取代密钥库中已创建的默认自签名证书。
- 复制密钥库文件到 App\keystores 子文件夹。
配置 TomEE 应用程序服务器以使用证书
- 在 TomCat\conf 子文件夹中查找 server.xml,然后在文本编辑器中打开它。
- 更新以下设置,然后保存并关闭 server.xml:
- keystoreFile 您创建的密钥库文件的名称和路径,采用以下格式:C:\ACL\App\keystores\<您的密钥库名称>
- keystorePass 您在创建密钥库时为其指定的密码。必须将密码放在双引号 ('' '') 中。
- 在 TomCat\conf 子文件夹中查找 system.properties,然后在文本编辑器中打开它。
- 更新以下设置,然后保存并关闭 system.properties:
javax.net.ssl.trustStore 您创建的密钥库文件的名称和路径,采用以下格式:C:/ACL/App/keystores/<您的密钥库名称>
说明
您必须在密钥库路径中使用正斜杠 '/' 字符。如果您使用反斜杠字符 '\'(这在 Windows 环境中很常见),您将在登录时遇到服务器错误。
- javax.net.ssl.trustStorePassword 您在创建密钥库时为其指定的密码
- 重启 ACL Analytics Exchange Service。
客户端流程
将证书导入到 AX 客户端机器 Java cacerts 文件
如果您正在使用一种默认在 cacerts 文件中没有根证书的证书,必须在安装了 AX 客户端的每台最终用户计算机上完成该配置。
- 打开 Windows Explorer 并导航到安装了 AX 客户端的 jre\lib\security 子文件夹中的 cacerts 文件。
默认位置是 C:\Program Files(x86)\ACL Software\ACL Analytics Exchange Client\jre\lib\security
- 在进行任何更改之前,请创建该文件的备份副本。
- 根据接收到的您当前使用的证书颁发机构颁发的证书,可能需要将中间证书和/或根证书导入到 cacerts 文件。使用下列语法,导入其中的一个证书或将两个都导入:
keytool -import -alias <别名> -keystore <
cacerts 文件> -trustcacerts -file <证书文件名>如果将两个证书都导入,则为每个证书指定的别名应唯一。
- 在密码提示处键入该密钥库的密码,然后按 Enter。
cacerts 文件的默认 Java 密码为 changeit。
- 在信任此证书?提示处键入 y,然后按回车键。
如有必要,在将访问 Analytics Exchange Web 应用程序的每台计算机上的 Web 浏览器中安装证书。
说明
如果证书由 Internet Explorer 中位于受信任的根证书颁发机构列表中的 CA 提供,则不需要以上操作。大型商业 CA,例如 VeriSign,包括在此列表中。