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

Appium Java测试遇SSLHandshakeException 导入自签证书报非X.509错误

问题排查与解决步骤

1. 排查证书文件内容是否混杂私钥

你使用的openssl生成命令会将私钥和证书写入同一个mycert.pem文件,keytool导入时会优先读取文件头部内容,如果先读到私钥块就会抛出「不是X.509证书」的错误。
你可以直接打开mycert.pem文件确认结构:

  • X.509证书块被-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----包裹
  • 私钥块被-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----包裹

2. 提取纯X.509证书文件

如果确认文件同时包含私钥和证书,执行以下命令提取单独的证书文件:

openssl x509 -in mycert.pem -out mycert_only.crt

3. 重新执行证书导入操作

使用提取后的纯证书文件执行导入,注意替换对应路径,默认JRE密钥库路径如下:

$JAVA_HOME/bin/keytool -import -alias mycertificate -keystore $JAVA_HOME/jre/lib/security/cacerts -file mycert_only.crt

提示:JRE默认密钥库的初始密码为changeit,未修改过密码可直接输入该值。

4. 修复初始SSL握手异常

你最开始遇到的No appropriate protocol报错,除了证书信任问题外,大概率是JDK默认禁用了低版本TLS协议导致,可按如下方式调整:

  • 打开JRE安全配置文件:$JAVA_HOME/jre/lib/security/java.security
  • 找到jdk.tls.disabledAlgorithms配置项,移除你需要使用的协议版本(如TLSv1、TLSv1.1),保存后重启测试进程即可。

内容的提问来源于stack exchange,提问作者mzaifquraishi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:33:00