Skip to content

Rocky Linux 9.7 下启动 Yogurt 后触发 HTTPS 请求失败,报错 Problem with the SSL CA cert (path? access rights?) #48

@x-dmp

Description

@x-dmp

软件版本:Yogurt v0.1.0 (build 183)

操作系统:Rocky Linux 9.7 (Blue Onyx)
系统信息:
NAME="Rocky Linux"
VERSION="9.7 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.7"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.7 (Blue Onyx)"

运行 ./yogurt.kexe 报错信息:

.--------------------------------------.
|   __  __                       __    |
|   \ \/ /___  ____ ___  _______/ /_   |
|    \  / __ \/ __ `/ / / / ___/ __/   |
|    / / /_/ / /_/ / /_/ / /  / /_     |
|   /_/\____/\__, /\__,_/_/   \__/     |
|           /____/   Acidify + Milky   |
'--------------------------------------'
Yogurt v0.1.0-dev.183

Commit Hash:    b63f9e18a1bf8a637baa587c0e92d7ebd98cc8d4
Core Version:   acidify-core 1.3.2+b63f9e1
Milky Version:  milky-kt-types 1.2.0-RC4 (1.2)
Build Time:     2026-03-22 19:29:11 CST
Data Directory: /opt/qqbot/yogurt
使用协议 Linux 3.2.26-46494 (AppId: 537345891)
[INFO] (io.ktor.server.Application): Application started in 0.021 seconds.
16:59:45  INFO o.n.a.Bot Session 为空,尝试二维码登录
[INFO] (io.ktor.server.Application): Responding at http://127.0.0.1:3000
16:59:45 DEBUG o.n.a.i.c.PacketContext 已连接到 msfwifi.3g.qq.com:8080
Uncaught Kotlin exception: kotlin.IllegalStateException: Connection failed for request: CurlRequestData(url='https://sign.lagrangecore.org/api/sign/sec-sign', method='POST', content: 860 bytes). Reason: Problem with the SSL CA cert (path? access rights?)
    at 0   yogurt.kexe                         0xc776ad           kfun:io.ktor.client.engine.curl.internal.CurlMultiApiHandler.handleCompleted#internal + 8269 
    at 1   yogurt.kexe                         0xc71be9           kfun:io.ktor.client.engine.curl.CurlProcessor.CurlProcessor$runEventLoop$1.$invokeCOROUTINE$0.invokeSuspend#internal + 2233 
    at 2   yogurt.kexe                         0x698d7f           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 223 
    at 3   yogurt.kexe                         0x7754c6           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 758 
    at 4   yogurt.kexe                         0x786833           kfun:kotlinx.coroutines.MultiWorkerDispatcher.MultiWorkerDispatcher$workerRunLoop$1.$invokeCOROUTINE$0.invokeSuspend#internal + 1251 
    at 5   yogurt.kexe                         0x698d7f           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 223 
    at 6   yogurt.kexe                         0x7754c6           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 758 
    at 7   yogurt.kexe                         0x746ac6           kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long + 966 
    at 8   yogurt.kexe                         0x780a43           kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 1811 
    at 9   yogurt.kexe                         0x786216           kfun:kotlinx.coroutines.MultiWorkerDispatcher.MultiWorkerDispatcher$1.MultiWorkerDispatcher$1$invoke$$inlined$apply$1.$<bridge-DN>invoke(){}#internal + 214 
    at 10  yogurt.kexe                         0x103c375          _ZN6Worker19processQueueElementEb + 1589 
    at 11  yogurt.kexe                         0x103bcac          _ZN12_GLOBAL__N_113workerRoutineEPv + 108 
    at 12  libc.so.6                           0x7f454b28b2e9     0x0 + 139935590429417 
    at 13  libc.so.6                           0x7f454b3103cf     0x0 + 139935590974415 
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@1bc21c70, DefaultDispatcher@4b8c3768]
        at 0   yogurt.kexe                         0x7436da           kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 1194 
        at 1   yogurt.kexe                         0x73c518           kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 24 
        at 2   yogurt.kexe                         0x74a08d           kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 2973 
        at 3   yogurt.kexe                         0x74df9d           kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 1165 
        at 4   yogurt.kexe                         0x74d993           kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 227 
        at 5   yogurt.kexe                         0x73a473           kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 147 
        at 6   yogurt.kexe                         0x698ea5           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 517 
        at 7   yogurt.kexe                         0x7753f5           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 549 
        ... and 10 more common stack frames skipped
Aborted (core dumped)

运行命令

strace -f -e file -o trace.log /opt/qqbot/yogurt/yogurt.kexe grep -Ei 'cert|ca-bundle|cacert|ssl' trace.log

trace.log

当前网络环境可连通,同一台设备上的 curl 可以正常使用 HTTPS
希望协助确认:
是否在 Linux Native / Ktor Curl 引擎中写死了某个 Debian/Ubuntu 风格的 CA 证书路径
是否没有兼容 Rocky / RHEL 系统的系统证书目录

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions