ikev2 + ipsec , debugging 提示Construct CERTREQ payload failed.
(0)
这个错误通常不会直接导致IPSec隧道建立失败,如果对端设备不要求证书认证(例如使用预共享密钥PSK),隧道仍然可以正常建立。但它指示了您本地设备配置上存在一个需要关注的问题。
在IKEv2协商中,发送方发送 CERTREQ
载荷的目的是告诉对端:“请使用这些我信任的证书颁发机构(CA)颁发的证书来向我证明你的身份”。
华三设备产生这个错误的核心原因是:设备想要请求对端提供证书(可能因为认证方式配置为RSA-SIG),但却找不到有效的、可用的CA证书来构建这个请求列表。
请您按照以下步骤进行排查,绝大多数情况下可以解决问题:
这是最需要先确认的一点。如果您并不打算使用证书进行认证,那这个错误可以忽略。
执行命令:display ike proposal
查看内容:找到您IPSec策略所引用的IKE提议,查看其 Authentication method
字段。
情况一:如果认证方法是 pre-share
(预共享密钥),那么设备理论上不应该发送 CERTREQ
载荷。出现这个错误可能是一个次要的bug或日志误导,只要IPSEC隧道能正常建立,可以暂时忽略此消息。
情况二:如果认证方法是 rsa-signature
(RSA签名,即证书认证),那么必须进行后续的证书相关配置排查。请继续往下看。
这是解决此问题的核心步骤。设备需要有一张或多张它信任的根CA证书,才能基于这些CA的信息去构建 CERTREQ
载荷。
确认是否已导入CA证书:
执行命令:display pki certificate domain *ca*
(请将 *ca*
替换为您实际创建的PKI域名称)
或者 display pki certificate ca-domain
(查看所有CA证书)
检查输出中是否有您期望的根CA证书。如果没有,说明您还没有导入正确的根证书。
如何导入CA证书:
创建PKI域(如果尚未创建):
[H3C] pki domain <your_domain_name>
[H3C-pki-domain-<your_domain_name>] undo crl check enable // 如果不检查CRL,可以先关闭以简化配置
[H3C-pki-domain-<your_domain_name>] quit
导入根CA证书:
通常通过TFTP/FTP等方式将根证书文件(如 ca.cer
)上传到设备的存储介质中。
然后执行命令导入:
[H3C] pki import domain <your_domain_name> der ca filename ca.cer
导入成功后,使用 display pki certificate domain <your_domain_name> ca
确认。
在IKE Profile中引用PKI域:
确保您的IKE profile配置中正确指定了用于验证对端证书的PKI域。
执行命令:display ike profile
查看您的IKE profile配置,应该有类似如下命令:
ike profile <profile_name>
certificate domain <your_domain_name> // 这行是关键
...
如果缺少这行,请进入IKE profile视图添加:certificate domain <your_domain_name>
证书的有效性基于设备的系统时间。如果设备的系统时间严重偏离实际时间(远早于或晚于证书的有效期),也可能会导致证书校验相关的问题,包括构建证书请求时出错。
执行命令:display clock
确保时间准确:如果时间不准,请配置NTP服务器同步时间。
[H3C] ntp-service unicast-server <ntp_server_ip>
如果您想获得更精确的错误代码(例如,是找不到证书还是证书无效),可以开启更详细的调试信息。注意:在繁忙的网络中谨慎使用,可能会输出大量日志。
<H3C> terminal monitor
<H3C> terminal debugging
<H3C> debugging ike all
然后再次尝试建立IPSec隧道,观察是否有更具体的错误信息输出,例如 public key is unavailable
或其他提示,这能帮助进一步定位是哪个CA证书出了问题。
首要步骤:确认您的认证方式。如果用PSK,此错误可暂忽略。
核心步骤:如果使用证书认证,请确保:
已正确创建PKI域。
已成功导入根CA证书到该域中。
IKE profile 中已通过 certificate domain
命令引用了这个PKI域。
辅助步骤:检查设备系统时间是否准确。
按照这个流程进行排查,Construct CERTREQ payload failed
的问题通常就可以得到解决。
(1)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论