| |||||||||
有时,当使用基于证书的验证时,集成工具箱 (ITK) 数据传输工具 (DTT) 可能会失败,并出现有关 SSL 错误或握手失败的错误。此解决方案适用于安装在服务器上但未安装在 SAP NetWeaver PI 上的独立 ITK 实例。
该问题通常是因为证书链不完整,或者客户密钥库中使用的证书不正确。
故障排除时,请检查以下内容:
确保客户已在 Ariba 应用程序中启用端点作为证书的验证方法,
(上游):管理 > 管理 > 集成管理器 > 集成工具箱安全性
(下游):管理 > 核心管理 > 集成管理器 > 集成工具箱安全性
如果 HTTPS 发布失败,客户可以在 ITK bin 目录的 toolslib.bat/.sh 文件中启用以下参数,以打印有关客户端/服务器 hello 和握手信息的调试信息:
a) 转到 <ITK_install_root>/bin
b) 编辑 toolslib.bat/.sh 文件
c) 设置以下参数并保存:
Windows:set _command="%JAVA_HOME%\bin\java" -Djavax.net.debug=ssl:handshake:verbose -Dhttps.protocols=TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols="TLSv1,TLSv1.2" -jar "%CLASSESDIR%\aribafiletransfer.jar" %args%
Linux/Unix: _command="$JAVA_HOME/bin/java -Djavax.net.debug=\"ssl:handshake:verbose\" -Dhttps.protocols=\"TLSv1.1,TLSv1.2\"-CLASSDIR/aribileaftransfer.jar\" $arg_argfer.jar"
ITK 下次运行并尝试发布到 Ariba 时,日志将显示 SSL 握手/证书信息。
检查为客户密钥库找到的证书的主题、颁发者、有效日期。在 ITK 日志中输入到 HTTPS 后,应将此信息打印到 Ariba URL。检查找到的证书是否与其预期在密钥库中的客户端证书信息匹配。
a) 应从客户端的密钥库中找到有效的证书。
示例:
****在 11 月 11 日 13:22:54 PDT 2020 运行文件传输工具****
过账到 https://certs1.ariba.com/Buyer/filedownload?realm=abcCompany
***
已找到以下项的密钥:<clients_keystore>
b) 将启动 *** ClientHello, TLSv1
c) 将启动 *** ServerHello, TLSv1 并将 Ariba 公钥(证书链)发送到客户端
d) 应找到受信任的证书
e) 将启动 *** ClientKeyExchange、RSA PreMasterSecret、TLSv1,其中客户端发送使用 Ariba 公钥签名的密钥交换
f) Ariba 解密 PreMasterSecret。 此时,如果出现故障,用户可能会看到如下错误。如果是,则密钥库中的证书可能存在此问题:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
下面列出了有效的领域,
SAP Ariba Buying and Invoicing
SAP Ariba Buying
SAP Ariba Contracts
SAP Ariba SIPM
SAP Ariba Sourcing