Все работало отлично до 7 июля 2024 года, когда это произошло. перестал работать после того, как Let's Encrypt выпустил новые сертификаты. Клиент получит следующее сообщение об ошибке:
Ошибка построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенного target
Я предполагаю, что проблема вызвана тем, что Let's Encrypt обновляет свою цепочку доверия, поскольку даты идеально совпадают. В качестве теста я вернулся к более старому сертификату Let's Encrypt до внесения изменений, и он все еще работает, по крайней мере, до истечения срока его действия в недалеком будущем.
На основе других сообщений в Stack Overflow , наиболее вероятная причина в том, что у меня нет самых последних промежуточных центров сертификации. Однако, следуя предложениям других, нам не удалось заставить его работать.
- Обновите Java 17 до Java 22
- Загрузите промежуточные сертификаты отсюда: X1, R10 в виде pem-файлов.
Добавьте их в JRE вручную. - Загрузите вручную. их в клиенте
Загрузка веб-сайта, который использует те же сертификаты Let's Encrypt, что и Chrome, работает нормально. Я убедился, что Java 22 имеет последние сертификаты, соответствующие тем, что были на веб-сайте Let’s Encrypt.
Вот как я убедился, что у JRE есть правильные сертификаты. С помощью Chrome я проверил нужные мне отпечатки пальцев:
9D7C3F1AA6AD2B2EC0D5CF1E246F8D9AE6CBC9FD0755AD37BB974B1F2FB603F3
34C44664C5257A38FFAFAC3A2130138FFE22CE972F3660C78 8FDA87FA0B670F3
96BCEC06264976F37460779ACF28C5A7CFE8A3C0AAE11A8FFCEE05C0BDDF08C6
Соответствующие сертификаты внутри хранилище ключей:
Код: Выделить всё
$JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit:
letsencrypt_r10, Jul 25, 2024, trustedCertEntry,
Certificate fingerprint (SHA-256): 9D:7C:3F:1A:A6:AD:2B:2E:C0:D5:CF:1E:24:6F:8D:9A:E6:CB:C9:FD:07:55:AD:37:BB:97:4B:1F:2F:B6:03:F3
letsencryptisrgx1 [jdk], Jul 25, 2024, trustedCertEntry,
Certificate fingerprint (SHA-256): 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
webpage-cert, Jul 25, 2024, trustedCertEntry,
Certificate fingerprint (SHA-256): 34:C4:46:64:C5:25:7A:38:FF:AF:AC:3A:21:30:13:8F:FE:22:CE:97:2F:36:60:C7:88:FD:A8:7F:A0:B6:70:F3
- https://stackoverflow.com/questions/649 ... -unable-to -найти-действительный-путь-сертификации-к-запрошенной-цели
Подробнее здесь: https://stackoverflow.com/questions/787 ... ng-let-s-e