Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java security cert certpathvalidatorexception ошибка

java.security.cert.CertPathVal > Ask Question

I’m testing to connect the Mongo DB service from the Liberty Java CF app on IBM Cloud. How to resolve the error?

$ keytool -list -v -keystore mongoKeyStore Enter keystore password:

Keystore type: JKS Keystore provider: SUN

Your keystore contains 1 entry

Alias name: mykey Creation date: 24/06/2017 Entry type: trustedCertEntry

Owner: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 Issuer: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 Serial number: 59491e1b Valid from: Tue Jun 20 23:07:39 AEST 2017 until: Sat Jun 20 23:00:00 AEST 2037 Certificate fingerprints: MD5: A4:54:21:6A:52:E1:8B:CB:07:CC:25:A3:3B:1A:8B:05 SHA1: BE:5D:AE:94:C3:A5:37:2D:43:B2:E7:FC:CF:39:19:EE:B8:10:29:9B SHA256: D5:6B:EB:D6:88:36:D4:77:06:9B:8D:2B:83:39:9B:95:A5:E3:22:09:99:EF:32:89:31:E2:88:C2:86:58:83:62 Signature algorithm name: SHA512withRSA Version: 3

2 Answers 2

I recently had this same issue with our db provider, they sent me their .crt file and I had to create a keystore with it.

then at my main class I defined truststore and truststore pass:

As the error says, the certificate isn’t trusted. I see that tutorial has a pretty substantial section on importing the certificate from the Mongo service into a keystore and setting it as the trustStore for Liberty. Double check those steps to make sure that you:

Correctly obtained and saved the certificate from the Mongo service, ie that it is not incomplete or corrupted or anything.

Check that you created a keystore using the keytool command in the correct location, and that you replaced the one from the repository if you checked that out, and that it includes the certificate you saved for the Mongo server. You can use keytool -list -v -keystore

on your keystore to see what’s inside.

Check that you configured Liberty correctly to use this keystore as your trust store. I think the tutorial is a little misleading, as it says

A typical application will also need to set several JVM system properties to ensure that the client presents an TLS/SSL certificate to the MongoDB server: javax.net.ssl.keyStore The path to a key store containing the client’s TLS/SSL certificates javax.net.ssl.keyStorePassword The password to access this key store

However, I think you actually need to set this keystore you created as the value for the javax.net.ssl.trustStore property (and set the trustStorePassword property accordingly) because the JVM uses the trustStore to check the public keys of hosts it is connecting to for trust.

Either way, make sure those properties are set appropriately and that Liberty is not throwing up any errors in the logs related to it on server start.

Once you have verified the whole chain (that you have exported the correct certificate, that you have created a keystore that contains that certificate, and that you have set that keystore as the truststore for the server,) you should have security set up to talk to the Mongo server correctly. If you have changed the existing truststore while the server is running you have to restart the server for it to pick up those changes.

java.security.cert.CertPathVal >

Я тестирую подключение сервиса Mongo DB из приложения Liberty Java CF на IBM Cloud. Как устранить ошибку?

$ keytool-list-v-keystore mongoKeyStore Введите пароль хранилища ключей:

Тип хранилища ключей: JKS Keystore provider: SUN

Ваше хранилище ключей содержит 1 запись

Псевдоним: mykey дата создания: 24/06/2017 тип записи: trustedCertEntry

Владелец: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 Эмитент: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 серийный номер: 59491e1b действительно с: Вт Jun 20 23:07:39 AEST 2017 до: СБ Jun 20 23:00:00 AEST 2037 отпечатки пальцев сертификата: MD5: A4:54:21:6A:52:E1:8B:CB:07:CC:25:A3:3B:1A:8B:05 SHA1: BE:5D:AE:94:C3:A5:37:2D:43:B2:E7:FC:CF:39:19:EE:B8:10:29:9B SHA256: D5:6B:EB:D6:88:36:D4:77:06:9B:8D:2B:83:39:9B:95:A5:E3:22:09:99:EF:32:89:31:E2:88:C2:86:58:83:62 Имя алгоритма подписи: SHA512withRSA версия: 3

2 Ответа

Недавно у меня была такая же проблема с нашим поставщиком БД, они прислали мне свой файл .crt, и мне пришлось создать хранилище ключей с ним.

затем в моей основной класс я определил хранилище truststore и пройти:

Читать еще:  Ошибка error 11

Надеюсь, это поможет.

Как говорится в ошибке, сертификат не является надежным. Я вижу, что в этом учебнике есть довольно существенный раздел по импорту сертификата из сервиса Mongo в хранилище ключей и установке его в качестве trustStore для Liberty. Дважды проверьте эти шаги, чтобы убедиться, что вы:

Правильно получен и сохранен сертификат от сервиса Mongo, т. е. что он не является неполным или поврежденным или еще что-нибудь.

Проверьте, что вы создали хранилище ключей с помощью команды keytool в правильном расположении, и что вы заменили его из хранилища, если вы это проверили, и что оно включает сертификат, сохраненный для сервера Mongo. Вы можете использовать keytool -list -v -keystore

на вашем хранилище ключей, чтобы увидеть, что находится внутри.

Убедитесь, что вы правильно настроили Liberty для использования этого хранилища ключей в качестве хранилища доверия. Я думаю, что учебник немного вводит в заблуждение, как он говорит

Типичное приложение также должно будет установить несколько систем JVM свойства, гарантирующие, что клиент представляет сертификат TLS / SSL к серверу MongoDB: javax.net.ssl.keyStore путь к хранилищу ключей содержащий сертификаты клиента TLS / SSL javax.net.ssl.keyStorePassword пароль для доступа к этому хранилищу ключей

Однако я думаю, что вам действительно нужно установить это хранилище ключей, которое вы создали, как значение для свойства javax.net.ssl.trustStore (и соответственно установить свойство trustStorePassword ), потому что JVM использует trustStore для проверки открытых ключей хостов, к которым он подключается, на предмет доверия.

В любом случае, убедитесь, что эти свойства установлены правильно и что Liberty не вызывает никаких ошибок в журналах, связанных с ним при запуске сервера.

После того, как вы проверили всю цепочку (что вы экспортировали правильный сертификат, что вы создали хранилище ключей, которое содержит этот сертификат, и что вы установили это хранилище ключей в качестве хранилища доверия для сервера), вы должны настроить безопасность для правильного разговора с сервером Mongo. Если вы изменили существующий truststore во время работы сервера, вы должны перезапустить сервер, чтобы он мог принять эти изменения.

Похожие вопросы:

Я постоянно получаю это сообщение об ошибке в своем журнале событий: Корень цепочки сертификатов не является доверенным корневым центром Кажется, он работает нормально, но мне не нравится звук этой.

Я пытаюсь использовать сервис RESTful из url https://someurl.com . Я добавил в свой код следующие свойства: Security.setProperty(ssl.SocketFactory.provider, com.ibm.jsse2.SSLSocketFactoryImpl);.

Я пытаюсь использовать простой код Java для получения цепочки сертификатов для удаленных серверов. Некоторые сайты возвращают цепочку сертификатов (2,3,4..) а некоторые просто 1. Мой вопрос: есть ли.

Как я могу сделать проверку цепочки сертификатов в java или открыть ssl? Я пишу приложение, где это очень распространенный сценарий для пользователей, чтобы поставить неправильную последовательность.

У меня есть IBM WAS 8.5.5.9 ND и MS Exchange server, к которым я пытаюсь получить доступ с помощью EWS Java API. Deployment менеджер установлен на одной машине, мой сервер приложений с java.

Я нашел эту службу https://whatsmychaincert.com/ , которая генерирует цепочку (с корнем), вставляя сертификат. Есть ли способ для генерации цепочки с OpenSSL? Я нашел эту команду: openssl s_client.

Я пытаюсь написать скрипт, который проверяет цепочку сертификатов в PowerShell (что все сертификаты в цепочке не просрочены) и находит сертификат, который ближе всего к истечению срока действия. Я.

Какова длина самой длинной цепочки сертификатов на сегодняшний день? Я хочу знать количество центров сертификации в этой цепочке, а не размер цепочки сертификатов.

В рукопожатии клиент-сервер ssl мой сервер отправляет цепочку сертификатов обратно клиенту в сообщении приветствия сервера. Но я хочу понять, как выбирается эта конкретная цепочка сертификатов. Мое.

java.security.cert.CertPathVal >

Я тестирую подключение сервиса Mongo DB из приложения Liberty Java CF на IBM Cloud. Как устранить ошибку?

Читать еще:  Ошибка снятия блокировки объекта

$ keytool-list-v-keystore mongoKeyStore Введите пароль хранилища ключей:

Тип хранилища ключей: JKS Keystore provider: SUN

Ваше хранилище ключей содержит 1 запись

Псевдоним: mykey дата создания: 24/06/2017 тип записи: trustedCertEntry

Владелец: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 Эмитент: CN=mwsadows@us.ibm.com-0b24b0ff06b390e0cc5e803aecd5ec82 серийный номер: 59491e1b действительно с: Вт Jun 20 23:07:39 AEST 2017 до: СБ Jun 20 23:00:00 AEST 2037 отпечатки пальцев сертификата: MD5: A4:54:21:6A:52:E1:8B:CB:07:CC:25:A3:3B:1A:8B:05 SHA1: BE:5D:AE:94:C3:A5:37:2D:43:B2:E7:FC:CF:39:19:EE:B8:10:29:9B SHA256: D5:6B:EB:D6:88:36:D4:77:06:9B:8D:2B:83:39:9B:95:A5:E3:22:09:99:EF:32:89:31:E2:88:C2:86:58:83:62 Имя алгоритма подписи: SHA512withRSA версия: 3

2 Ответа

Недавно у меня была такая же проблема с нашим поставщиком БД, они прислали мне свой файл .crt, и мне пришлось создать хранилище ключей с ним.

затем в моей основной класс я определил хранилище truststore и пройти:

Надеюсь, это поможет.

Как говорится в ошибке, сертификат не является надежным. Я вижу, что в этом учебнике есть довольно существенный раздел по импорту сертификата из сервиса Mongo в хранилище ключей и установке его в качестве trustStore для Liberty. Дважды проверьте эти шаги, чтобы убедиться, что вы:

Правильно получен и сохранен сертификат от сервиса Mongo, т. е. что он не является неполным или поврежденным или еще что-нибудь.

Проверьте, что вы создали хранилище ключей с помощью команды keytool в правильном расположении, и что вы заменили его из хранилища, если вы это проверили, и что оно включает сертификат, сохраненный для сервера Mongo. Вы можете использовать keytool -list -v -keystore

на вашем хранилище ключей, чтобы увидеть, что находится внутри.

Убедитесь, что вы правильно настроили Liberty для использования этого хранилища ключей в качестве хранилища доверия. Я думаю, что учебник немного вводит в заблуждение, как он говорит

Типичное приложение также должно будет установить несколько систем JVM свойства, гарантирующие, что клиент представляет сертификат TLS / SSL к серверу MongoDB: javax.net.ssl.keyStore путь к хранилищу ключей содержащий сертификаты клиента TLS / SSL javax.net.ssl.keyStorePassword пароль для доступа к этому хранилищу ключей

Однако я думаю, что вам действительно нужно установить это хранилище ключей, которое вы создали, как значение для свойства javax.net.ssl.trustStore (и соответственно установить свойство trustStorePassword ), потому что JVM использует trustStore для проверки открытых ключей хостов, к которым он подключается, на предмет доверия.

В любом случае, убедитесь, что эти свойства установлены правильно и что Liberty не вызывает никаких ошибок в журналах, связанных с ним при запуске сервера.

После того, как вы проверили всю цепочку (что вы экспортировали правильный сертификат, что вы создали хранилище ключей, которое содержит этот сертификат, и что вы установили это хранилище ключей в качестве хранилища доверия для сервера), вы должны настроить безопасность для правильного разговора с сервером Mongo. Если вы изменили существующий truststore во время работы сервера, вы должны перезапустить сервер, чтобы он мог принять эти изменения.

Похожие вопросы:

Я постоянно получаю это сообщение об ошибке в своем журнале событий: Корень цепочки сертификатов не является доверенным корневым центром Кажется, он работает нормально, но мне не нравится звук этой.

Я пытаюсь использовать сервис RESTful из url https://someurl.com . Я добавил в свой код следующие свойства: Security.setProperty(ssl.SocketFactory.provider, com.ibm.jsse2.SSLSocketFactoryImpl);.

Я пытаюсь использовать простой код Java для получения цепочки сертификатов для удаленных серверов. Некоторые сайты возвращают цепочку сертификатов (2,3,4..) а некоторые просто 1. Мой вопрос: есть ли.

Как я могу сделать проверку цепочки сертификатов в java или открыть ssl? Я пишу приложение, где это очень распространенный сценарий для пользователей, чтобы поставить неправильную последовательность.

У меня есть IBM WAS 8.5.5.9 ND и MS Exchange server, к которым я пытаюсь получить доступ с помощью EWS Java API. Deployment менеджер установлен на одной машине, мой сервер приложений с java.

Я нашел эту службу https://whatsmychaincert.com/ , которая генерирует цепочку (с корнем), вставляя сертификат. Есть ли способ для генерации цепочки с OpenSSL? Я нашел эту команду: openssl s_client.

Читать еще:  Ошибка registration cant be completed

Я пытаюсь написать скрипт, который проверяет цепочку сертификатов в PowerShell (что все сертификаты в цепочке не просрочены) и находит сертификат, который ближе всего к истечению срока действия. Я.

Какова длина самой длинной цепочки сертификатов на сегодняшний день? Я хочу знать количество центров сертификации в этой цепочке, а не размер цепочки сертификатов.

В рукопожатии клиент-сервер ssl мой сервер отправляет цепочку сертификатов обратно клиенту в сообщении приветствия сервера. Но я хочу понять, как выбирается эта конкретная цепочка сертификатов. Мое.

Let’s Encrypt on Android gives java.security.cert.CertPathValidatorException: Trust anchor for certification path not found

Hi have setup a small serve, generated a free certificate from Let’s encrypt and configured Nginx to use that certificate (fullchain.pem and privkey.pem)

However, when I attempt to make a call from my Android app (with OkHttp3) I get this error

Is Let’s encrypt root certificate not trusted by the Android cert trust store? Or did I miss something when setting up nginx? What is a work around for this If i still want to use Let’s encrypt certificates?

Создан 03 авг. 17 2017-08-03 15:43:44 Johny19

«Is Let’s encrypt root certificate not trusted by the Android cert trust store?» — it will depend in part on the version of Android. Older devices are more likely to have issues. «Or did I miss something when setting up nginx?» — test with a regular Web browser and see if the browser complains. «What is a work around for this» — set up certificate pinning in OkHttp, pinning to the Let’s Encrypt root certificate. – CommonsWare 03 авг. 17 2017-08-03 15:47:40

Using a regular android browser works just fine.Looks like it is more an issue with JDK trust store :/ – Johny19 03 авг. 17 2017-08-03 16:01:11

did you find a solution for this ? I have the same problem – jaumard 21 ноя. 17 2017-11-21 19:37:05

Any updates on the issue? I am facing the same problem too! – Rahul Shukla 12 дек. 17 2017-12-12 09:34:38

I think I had gave up and manually imported my certificate in the trust store (just for testing) – Johny19 12 дек. 17 2017-12-12 15:19:53

same issue here, did you solve it ? – Ali Adil 08 янв. 18 2018-01-08 07:06:17

1 ответ

I’m not sure it’s useful but, the /etc/letsencrypt/live/ /README file says:

This directory contains your keys and certificates.

privkey.pem : the private key for your certificate.

fullchain.pem : the certificate file used in most server software.

chain.pem : used for OCSP stapling in Nginx >=1.3.7.

cert.pem : will break many server configurations, and should not be used without reading further documentation (see link below).

We recommend not moving these files. For more information, see the Certbot User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.

So maybe you should be using chain.pem ?

On the other hand, for those not even using Nginx, I was getting the same error from Andro >chain.pem instead of fullchain.pem . One of the solutions for Andro >fullchain.pem ), as explained here:

There are two approaches to solve this issue:

Configure the server to include the intermediate CA in the server chain. Most CAs provide documentation on how to do this for all common web servers. This is the only approach if you need the site to work with default Android browsers at least through Android 4.2.

Or, treat the intermediate CA like any other unknown CA, and create a TrustManager to trust it directly, as done in the previous two sections.

Создан 22 янв. 18 2018-01-22 19:55:57 maganap

Ссылка на основную публикацию
Adblock
detector