Я сгенерировал и подписал идентичные сертификаты в Raspberry Pi и Ubuntu Linux.
SSL-соединение работает нормально в Raspberry, но в Ubuntu происходит сбой с ошибкой Received fatal alert: unknown_ca
Во время процедуры проверки сертификата я обнаружил разницу:
Ошибка (Ubuntu на AWS)
*** CertificateVerify
Signature Algorithm SHA256withRSA
Хорошо (Raspberry Pi)
*** 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 и перезаписал.
Я закомментировал строку crypto.policy=unlimited
в C:\java\jdk1.8.0_241\jre\lib\security\java.security
файле
Но проблема остается той же , До ошибки:
MQTT Con: 2, RECV TLSv1.2 ALERT: fatal, unknown_ca
%% Invalidated: [Session-1, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384]