rcp 返回 error:00000000:invalid library (0):OPENSSL_internal:invalid library

rcp 返回 error:00000000:invalid library (0):OPENSSL_internal:invalid library

你好

今日遇到了通过 rcp 访问某网站(https://rsshub.app/telegram/channel/awesomeRSSHub) 时,遇到 “error:00000000:invalid library (0):OPENSSL_internal:invalid library” 错误。

{
  "code": 1007900035,
  "data": "SSL connect error",
  "extendInfo": {
    "httpPhase": "111000",
    "dnsDur": "10.79",
    "tcpDur": "7.67",
    "tlsDur": "0.00",
    "sndDur": "0.00",
    "rcvDur": "0.00",
    "totDur": "7365.18",
    "redDur": "0.00",
    "sptIP6": "0",
    "proxyType": "none",
    "peer": "199.193.***.***",
    "sock": "94",
    "sslErr": "error:00000000:invalid library (0):OPENSSL_internal:invalid library (0)",
    "minTlsVersion": "TLS1",
    "maxTlsVersion": "TLS1.3",
    "ciphers": "ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-RSA-AES128-GCM-SHA256|ECDHE-ECDSA-AES256-GCM-SHA384|ECDHE-RSA-AES256-GCM-SHA384|ECDHE-ECDSA-CHACHA20-POLY1305|ECDHE-RSA-CHACHA20-POLY1305|ECDHE-PSK-CHACHA20-POLY1305|ECDHE-ECDSA-AES128-SHA|ECDHE-RSA-AES128-SHA|ECDHE-PSK-AES128-CBC-SHA|ECDHE-ECDSA-AES256-SHA|ECDHE-RSA-AES256-SHA|ECDHE-PSK-AES256-CBC-SHA|AES128-GCM-SHA256|AES256-GCM-SHA384|AES128-SHA|PSK-AES128-CBC-SHA|AES256-SHA|PSK-AES256-CBC-SHA|DES-CBC3-SHA"
  }
}
{
  "code": 1007900035,
  "data": "SSL connect error",
  "extendInfo": {
    "httpPhase": "111000",
    "dnsDur": "1.24",
    "tcpDur": "20.27",
    "tlsDur": "0.00",
    "sndDur": "0.00",
    "rcvDur": "0.00",
    "totDur": "7471.79",
    "redDur": "0.00",
    "sptIP6": "0",
    "proxyType": "none",
    "peer": "199.193.***.***",
    "sock": "170",
    "sslErr": "error:00000000:invalid library (0):OPENSSL_internal:invalid library (0)",
    "minTlsVersion": "TLS1",
    "maxTlsVersion": "TLS1.3",
    "ciphers": "ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-RSA-AES128-GCM-SHA256|ECDHE-ECDSA-AES256-GCM-SHA384|ECDHE-RSA-AES256-GCM-SHA384|ECDHE-ECDSA-CHACHA20-POLY1305|ECDHE-RSA-CHACHA20-POLY1305|ECDHE-PSK-CHACHA20-POLY1305|ECDHE-ECDSA-AES128-SHA|ECDHE-RSA-AES128-SHA|ECDHE-PSK-AES128-CBC-SHA|ECDHE-ECDSA-AES256-SHA|ECDHE-RSA-AES256-SHA|ECDHE-PSK-AES256-CBC-SHA|AES128-GCM-SHA256|AES256-GCM-SHA384|AES128-SHA|PSK-AES128-CBC-SHA|AES256-SHA|PSK-AES256-CBC-SHA|DES-CBC3-SHA"
  }
}

重现步骤

const url = 'https://rsshub.app/telegram/channel/awesomeRSSHub'
const session = rcp.createSession();
try {
  const resp = await session.get(url);
  const body = resp.toString()
} catch (e) {
  ...
} finally {
  session.close();
  ...
}

ps: 自带浏览器同样无法访问该网站,但通过卓易通安装的 Chrome 可以正常访问。怀疑是同样的 root cause。

版本

HarmonyOS NEXT 5.0.0.126 SP8
HongMeng Kernel 1.9.3

尝试排查

该网站由 CloudFlare 提供 CDN 服务,服务端应该不会有 TLS 协议的问题。
手工测试 tlsv1 和 tlsv1.3,均可正常访问。

$ curl -v https://rsshub.app/telegram/channel/awesomeRSSHub --tlsv1 > /dev/null
< HTTP/1.1 200 Connection established
$ curl -v https://rsshub.app/telegram/channel/awesomeRSSHub --tlsv1.3 > /dev/null
< HTTP/1.1 200 Connection established

1 回复

帖子标题中的错误信息“rcp 返回 error:00000000:invalid library (0):OPENSSL_internal:invalid library”通常与OpenSSL库的使用有关。OpenSSL是一个开源的加密库,广泛用于处理SSL/TLS协议。这个错误表明在尝试使用OpenSSL时,遇到了库无效或无法正确加载的问题。

可能的原因包括:
1. OpenSSL库文件缺失或损坏。
2. 库文件路径配置不正确,导致系统无法找到正确的OpenSSL库。
3. 使用了不兼容的OpenSSL版本。
4. 系统环境变量设置错误,影响了库的加载。

解决此类问题通常需要检查OpenSSL库的安装和配置情况,确保库文件完整且路径正确。如果问题持续,可能需要重新安装或更新OpenSSL库,并确认系统环境变量设置无误。
回到顶部