ServiceDesk Plus支持使用HTTPS模式运行,但是,需要安装由证书授权机构(Certificate Authority - CA)签发的SSL (Secure Socket Layer) 证书。
默认情况下,当您首次使用HTTPS模式时,通常会创建一个自签名的证书。但该自签名的证书不会被用户的浏览器信任。因此,当您连接到ServiceDesk Plus,您需要手动验证证书信息,并强制浏览器接受该证书,才能使用。
为了使浏览器及终端用户能够自动而又正确的鉴别ServiceDesk Plus服务器,需要从证书授权机构获取该服务器的新的签名证书。您可以使用 keytool (绑定在Java里)创建您的证书,然后将它提交给授权机构,从而获取由授权机构签名的证书,将它安装到ServiceDesk Plus。
配置ServiceDesk Plus,使其能够使用SSL的步骤如下:
步骤 1:创建一个Keystore文件
步骤 2:创建.CSR (Certificate Signing Request - 证书签名请求) 文件
步骤 3a:从 ServiceDesk Plus 用户界面安装 SSL 证书
步骤 3b:安装您的 SSL 证书
注意:在所有图片中,请将高亮显示的文本替换为您要用于 ServiceDesk Plus 的别名。
向 CA 申请证书前,需要创建 tomcat 专用的".keystore "文件和".csr "文件。.keystore 文件和 .csr 文件将包括创建 .keystore 和 .csr 文件的个人提供的信息。
导航至 <SDP-home>/jre/bin 文件夹。
打开命令提示符并执行以下命令:
根据提示输入密码。密码不得包含以下特殊字符:$、"和 \。
以下是创建密钥存储时要求提供的详细信息:
例如:helpdesk.domain.com
注:如果订购通配符证书,URL 应以 * 字符开头。名字和姓氏应为 *.domain.com
再次提示输入密码时,按输入/返回。请勿输入密码。
将生成密钥存储。
步骤 2:创建 .CSR (Certificate Signing Request) 文件
导航至 <SDP-home>/jre/bin 文件夹。
打开命令提示符并执行以下命令:
将在 <SDP-home>/jre/bin 文件夹下创建 sdp.keystore 和 key.csr 文件。
注意:如果私钥为 .key 文件,则无需输入任何密码。
将通过电子邮件从 CA 收到的证书文件下载到创建 CSR 过程中保存密钥库 (sdp.keystore) 的目录。证书必须准确安装到该密钥库中。如果试图将其安装到其他密钥库,则无法正常工作。
您下载的证书必须按照正确的顺序安装到密钥存储中,这样您的证书才能被信任。如果证书安装顺序不正确,证书将无法正常验证。要找到正确的顺序,请双击域证书,然后转到 "证书路径"。
这些证书的格式通常为 .cer 或 .crt。如果证书扩展名为 .p7b,请按照安装 .P7b 证书中的说明将证书导出为 .cer 或 .crt 格式。
根据上述证书路径,我们可以推断出在域证书之前还需要导入另外两张证书。首先是root证书,其次是Intermediate 证书,最后是域证书。有些 CA 还可能使用另一种称为交叉中间证书的证书。这些证书可从供应商网站下载。
安装 Root 证书文件
每次将证书安装到密钥存储时,系统都会提示您输入密钥存储密码,该密码是您在生成 CSR 时选择的。键入以下命令安装root证书文件:
keytool -import -trustcacerts -alias root -file <File_Name>.crt -keystore sdp.keystore
注意:如果系统提示证书已存在于系统范围 CA 密钥存储的 < Alias Name> 下,您是否仍要将其添加到自己的密钥存储中?[否]。
您将收到证书已添加到密钥库的确认信息。
安装Intermediate证书和Cross Intermediate证书(如有)。
按照 CA 提供的说明进行操作。
keytool -import -trustcacerts -alias intermediate -file <File_Name>.crt -keystore sdp.keystore
keytool -import -trustcacerts -alias cross -file <File_Name>.crt -keystore sdp.keystore
您将收到证书已添加到 keystore的确认信息。
安装主证书或域证书文件。
输入以下命令安装主证书文件:
keytool -import -trustcacerts -alias <your_alias_name or [Domain Name]> -file your_domain_name.crt -keystore sdp.keystore
请注意,<your_alias_name 或 [Domain Name]> 应替换为创建密钥存储时提供的别名(如步骤 1 所述)。这一次,您会收到不同的确认信息,说明证书回复已安装到密钥存储中。
如果要信任证书,请选择 y 或 yes。证书现在已安装到密钥存储文件(sdp.keystore)中。
Cmd>[ServiceDesk Plus Home]\bin> changeWebServerPort.bat <WEBSERVER_PORT> https
配置服务器(9400 以下版本)
Cmd>[ServiceDesk Plus Home]\bin> changeWebServerPort.bat <WEBSERVER_PORT> https
在命令提示符下,变更为 <installation directory>\bin
对于 10.5 之前的版本,运行 :
对于 10.5 及更高版本,请运行:
下一行将显示加密密码。
有些 CA 提供的证书扩展名为 .p7b。在这种情况下,您可以双击该文件打开一个控制台,其中会列出所有需要的证书。您可以将这些证书导出为 Base-64 编码的 X.509 (.cer) 文件。
然后就可以使用步骤 3 中的说明将这些证书安装到密钥存储文件中。
导出证书,
转到 [ServiceDesk Plus Home] \ jre \ bin \ domain.P7B。
右键点击证书,选择所有任务 -> 导出选项。
弹出证书导出向导对话框,点击下一步按钮继续。
选择导出文件格式为 Base-64 编码 X.509 (.cer),点击下一步。
指定要导出的文件,点击下一步。
证书导出向导已成功完成,您可以检查您指定的设置,点击完成。
成功信息出现在对话框中,点击确定。
下面是安装一些常见供应商证书所需的命令。
注意:根据 CA 签发的证书,这些说明可能会有所变化。
GoDaddy
如果您的 CA 是"GoDaddy",则需要执行以下步骤:
keytool -import -alias root -keystore <Keystore_Name>.keystore -trustcacerts -file gd_bundle.crt
keytool -import -alias cross -keystore <Keystore_Name>.keystore -trustcacerts -file gd_cross_intermediate.crt
keytool -import -alias intermediate -keystore <Keystore_Name>.keystore -trustcacerts -file gd_intermediate.crt
keytool -import -alias <Alias Specified when creating the Keystore> -keystore <Keystore_Name>.keystore -trustcacerts -file <CertificateName>.crt
Verisign
如果您的CA是"Verisign",则需要执行以下步骤:
keytool -import -alias intermediateCA -keystore <Keystore_Name>.keystore -trustcacerts -file <your_intermediate_certificate_name>.cer
keytool -import -alias <Alias Specified when creating the Keystore> -keystore < Keystore_Name>.keystore -trustcacerts -file <CertificateName>.cer
Comodo
如果您的CA 是"Comodo",则需要执行以下步骤:
keytool -import -trustcacerts -alias root -file AddTrustExternalCARoot.crt -keystore <Keystore_Name>.keystore
keytool -import -trustcacerts -alias addtrust -file UTNAddTrustServerCA.crt -keystore <Keystore_Name>.keystore
keytool -import -trustcacerts -alias ComodoUTNServer -file ComodoUTNServerCA.crt -keystore <Keystore_Name>.keystore
keytool -import -trustcacerts -alias essentialSSL -file essentialSSLCA.crt -keystore <Keystore_Name>.keystore
keytool -import -trustcacerts -alias <Alias Specified when creating the Keystore> -file <Certificate-Name>.crt -keystore <Keystore_Name>.keystore
原因:这可能是因为应用程序中使用的 Java 版本不支持用于加密 .pfx 文件中密码的算法。请按照下面给出的步骤进行建议的解决方法:
按照此处的说明将 SSL 证书导入到您的机器。
使用 Microsoft 管理控制台将证书导出为 .pfx 格式,包括私钥、证书路径中的所有证书以及所有扩展属性。确保密码加密为 TripleDES-SHA1,而不是 AES256-SHA256。点击此处了解如何操作。
使用新的 .pfx 文件,将 SSL 证书导入应用程序。
在 keytool 中导入域证书时,会出现如下所示的错误:未能从回复建立链:
原因:检查应用程序中使用的 Java 版本的密钥工具是否支持证书(根证书、中间证书和域证书)中使用的签名算法。例如,Java 8 不支持 RSASSA-PSS 算法。
建议的解决方法是获取使用应用程序所用 Java 版本所支持算法的新root、intermediate和域证书。
如果无法获得新证书,则使用相同的密钥库和证书(使用支持签名算法的 Java 版本提供的密钥工具)导入域证书。手动将密钥库放在 {PRODUCT_HOME}/conf 中,并按此处给出的方法配置服务器。
使用与应用程序版本不同的 Java 版本生成的密钥库的 UI 导入将失败。
点击此处了解创建 SSL 证书并将其导入密钥存储的步骤。
从用户界面导入 .pfx 证书失败,提示错误 "非法密钥大小"。在 importssl0 日志文件中发现以下异常跟踪:
原因:这可能是因为产品使用的 Java 版本不支持该密钥大小。换句话说,证书可能是由不同密钥大小的不同 java 版本生成的。
建议的解决方法是获取具有适当密钥大小的新证书(或)用不同 Java 版本的策略文件替换 {PRODUCT_HOME }\jre\lib\security 中的策略文件。
从以下链接下载 ServiceDesk Plus 的策略文件: