【发布时间】:2020-01-24 19:57:14
【问题描述】:
I have identically generated and signed certificates in Raspberry Pi and Ubuntu Linux.
SSL 连接在 Raspberry 上正常工作,而在 Ubuntu 上失败并出现错误 Received fatal alert: unknown_ca
在证书验证过程中我发现了不同之处:
失败(AWS 上的 Ubuntu)
*** CertificateVerify
Signature Algorithm SHA256withRSA
好(树莓派)
*** CertificateVerify
Signature Algorithm SHA512withRSA
为什么我有不同的签名算法?在这两种情况下,都使用相同的命令来创建和签署证书。
在与 Java 通信时会不会有问题?
UPD
尝试启用无限强度管辖政策
我的 Java 安装中有两个文件夹,其中包含 local_policy.jar 和 US_export_policy.jar:
C:\java\jdk1.8.0_241\jre\lib\security\policy\limited
C:\java\jdk1.8.0_241\jre\lib\security\policy\unlimited
我想unlimited 文件夹包含所需的库,但请确保我已从Oracle 下载并覆盖它们。
我在C:\java\jdk1.8.0_241\jre\lib\security\java.security 文件中取消了crypto.policy=unlimited 行的注释
但问题仍然存在。直到有错误:
MQTT Con: 2, RECV TLSv1.2 ALERT: fatal, unknown_ca
%% Invalidated: [Session-1, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384]
【问题讨论】:
-
您在两个平台上都使用哪个版本的 Java(以及来自哪个“供应商”)?
-
我在 Linux 系统上使用 Mosquitto MQQT 和 Oracle 的 Java 8 作为客户端。
-
在 Java 13 中遇到同样的错误
-
CertificateVerify 算法与证书签名或警报无关(请参阅对原始 Q 的评论),它们都不受加密政策的任何影响。
标签: java ssl paho pyopenssl java-security