You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Routinator连接到自托管Krill测试床服务器?证书问题排查

解决Routinator连接Krill时RRDP证书验证错误(UnknownIssuer)

问题核心

Routinator通过RRDP同步Krill的ROA数据时,触发invalid peer certificate: UnknownIssuer错误,导致RRDP同步失败、只能回退到rsync,最终Krill发布的自定义ROA未被正常验证。

排查与解决步骤

1. 验证系统证书信任池是否生效

在主机B(Routinator)上执行以下命令,检查Krill的HTTPS证书是否被系统信任:

openssl s_client -connect krill.com:3000
  • 若输出中Verify return code为19 (self signed certificate in certificate chain),说明CA证书未正确加入系统信任池。
  • 确认CA证书为PEM格式,已追加至/etc/ssl/certs/ca-certificates.crt,重新执行更新命令:
    update-ca-certificates --fresh
    
    确保输出显示1 added或类似成功提示。

2. 让Routinator直接指定信任的CA证书

系统证书池可能未被Routinator识别,可在配置文件中直接绑定Krill的CA根证书:
打开Routinator配置文件(如/etc/routinator/routinator.conf),添加以下配置:

# 指定信任的RRDP服务器CA证书
rrdp-trust-anchor = [ "/var/routinator/tals/krill-ca.cer" ]

将路径替换为实际存放Krill CA证书的位置,随后重启Routinator服务:

systemctl restart routinator

3. 检查Krill服务器证书的有效性

在主机A(Krill)上,验证服务器证书是否包含正确的域名(SAN字段):

openssl x509 -in /var/krill/data/ssl/cer.pem -text -noout | grep -A 1 "Subject Alternative Name"
  • 若输出中无DNS:krill.com,说明证书缺少SAN字段,需重新生成:
    # 生成证书签名请求(CSR)
    openssl req -new -key /var/krill/data/ssl/key.pem -out csr.pem -subj "/CN=krill.com"
    # 用自签名CA签发包含SAN的服务器证书
    openssl x509 -req -in csr.pem -CA /path/to/your/ca.cer -CAkey /path/to/your/ca.key -CAcreateserial -out /var/krill/data/ssl/cer.pem -days 365 -extfile <(printf "subjectAltName=DNS:krill.com")
    
    替换/path/to/your/ca.cer和/path/to/your/ca.key为Krill的CA根证书与密钥路径,之后重启Krill服务:
    systemctl restart krill
    

4. 临时测试方案:关闭RRDP证书验证(仅测试环境)

若需快速验证功能,可临时关闭Routinator的RRDP证书验证(生产环境绝对禁止):
在Routinator配置文件中添加:

rrdp-no-verify = true

重启Routinator后即可跳过证书验证,但存在明文数据泄露风险。

验证结果

完成配置后,查看Routinator日志确认修复效果:

tail -f /var/routinator/logs/routinator.log

若日志中不再出现UnknownIssuer警告,且Krill的ROA统计显示verified数量大于0,则说明连接正常。

内容的提问来源于stack exchange,提问作者QY-Y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:27:02