1. 当SAP与Concur握手失败时发生了什么那天早上我刚到办公室就接到业务部门电话说Concur报销系统无法提交单据。打开CTE_SETUP事务码测试连接果然看到刺眼的红色报错SSL Peer Certificate Untrusted。这个报错就像两个陌生人在黑暗房间握手突然一方说我不认识你的指纹——SSL证书验证失败了。具体到技术层面-102错误码SSSLERR_PEER_CERT_UNTRUSTED意味着SAP系统不信任Concur服务器提供的证书。常见原因有三种证书过期最常见、证书链不完整、根证书未导入。就像检查食品保质期一样我们先要确认证书有效期。在STRUST事务码中查看现有证书发现Concur的证书确实已超过有效期——这就是通信中断的元凶。提示SSL握手失败时建议先用浏览器访问目标网址如https://eu1.concursolutions.com点击地址栏锁图标查看证书详情这能快速判断是证书过期还是系统配置问题。2. 如何正确获取Concur最新证书在Concur官网下载证书时新手常犯两个错误一是下载了错误的证书类型比如客户端证书而非服务器证书二是漏掉了中间证书。正确的操作应该是登录Concur开发者门户找到API凭证与证书板块下载包含完整证书链的PEM文件通常命名为concur_ssl_chain.pem用文本编辑器打开证书文件应该看到三段内容-----BEGIN CERTIFICATE----- (服务器证书内容) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (中间证书内容) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (根证书内容) -----END CERTIFICATE-----如果只看到一段证书内容说明下载的是单独证书而非完整证书链这会导致后续验证失败。我曾经遇到过因为漏掉中间证书折腾半天才发现问题的案例。3. STRUST事务码的证书导入实战STRUST是SAP的证书管理中枢它的界面像一棵倒置的树。导入Concur证书时关键是要选对节点位置。以下是详细步骤3.1 准备证书文件将下载的PEM文件拆分为单独证书文件。在Linux系统可以用这个命令csplit -z concur_ssl_chain.pem /-----BEGIN CERTIFICATE-----/ {*}这会生成xx00、xx01等文件分别重命名为server.crt、intermediate.crt和root.crt。3.2 导入到SSL客户端标准执行STRUST进入证书管理界面左侧导航树选择SSL客户端标准→匿名点击工具栏导入证书按钮选择server.crt文件勾选Base64编码选项重复上述步骤导入中间证书和根证书注意如果Concur使用多级证书链必须按照从叶到根的顺序导入就像搭积木要从底层开始一样。4. 验证与故障排查技巧导入完成后别急着收工我建议做三重验证系统验证在CTE_SETUP重新测试连接观察是否还有SSL错误日志检查通过SMICM查看ICM日志搜索SSL关键词[Thr 1234] SSL handshake failed: certificate verify failed (depth1)这类日志能精确定位证书链哪一级出问题网络抓包用Wireshark捕获443端口流量查看SSL握手过程中的证书交换详情如果仍然失败可以尝试这个诊断技巧在STRUST界面选中证书点击显示详情查看指纹信息与浏览器中看到的证书指纹对比。我曾用这个方法发现过证书文件下载损坏的情况。5. 证书管理的长效机制临时解决问题只是开始建立预防机制更重要。建议创建证书到期监控表包含这些字段证书用途如Concur接口关联事务码到期日期负责人设置定期提醒比如提前30天通知在测试系统先行验证新证书有次我们因为证书过期导致生产系统中断后来建立了这个机制再没发生过类似问题。证书就像汽车年检不能等到抛锚才想起维护。6. 其他常见SSL问题处理除了证书过期这些情况也会导致SSL握手失败密码套件不匹配SAP系统配置的加密算法与对方服务器不兼容。检查CRYPT_PARAM文件中的ssl_ciphers参数主机名验证失败证书中的CN或SAN域名与实际访问地址不符。可通过修改icm/HTTPS/verify_hostname参数调整验证强度系统时间偏差服务器时间不同步会导致证书有效期验证异常。用ST06检查系统时间误差超过5分钟就可能出问题每次遇到SSL问题我的排查口诀是一查时间二查链三对域名四看键。掌握这个顺序能少走很多弯路。