Oracle JDBC выбрасывает PKI-02002: невозможно открыть кошелек. Проверьте пароль
В моем проекте Java я использую кошелек оракула для хранения учетных данных в базе данных в различных средах. Пока все работает нормально, но сейчас я столкнулся с проблемой, которую не могу объяснить.
В моей текущей конфигурации (которой около года и она работает) я сгенерировал кошелек в соответствии с документацией оракулов https://docs.oracle.com/cd/B19306_01/network.102/b14266/cnctslsh.htm
Теперь я настраивал новое окружение и генерировал новый кошелек с новыми учетными данными. Но по какой-то причине JDBC не может открыть этот кошелек:
Вызвано: java.sql.SQLException: обнаружена проблема с Secret Store. Проверьте местоположение кошелька на наличие открытого кошелька (cwallet.sso) и убедитесь, что этот кошелек содержит правильные учетные данные с помощью утилиты mkstore: java.io.IOException: PKI-02002: Невозможно открыть кошелек. Проверьте пароль.
Конечно, я проверил, правильно ли расположено и правильно ли настроены права доступа - все вроде нормально.Если я скопирую свой старый кошелек в это место, приложение сможет подключиться к БД, но не сможет сделать это с новым кошельком.
Когда я сравниваю старый и вновь созданный кошелек, я замечаю, что новый намного меньше старого, старый - около 3,8 КБ, новый - около 1,5 КБ.
Я проверил содержимое обоих с помощью утилиты orapki:
новый кошелек
#orapki wallet display -wallet .
Oracle PKI Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Oracle Secret Store entries:
oracle.security.client.connect_string1
oracle.security.client.connect_string2
oracle.security.client.connect_string3
oracle.security.client.connect_string4
oracle.security.client.password1
oracle.security.client.password2
oracle.security.client.password3
oracle.security.client.password4
oracle.security.client.username1
oracle.security.client.username2
oracle.security.client.username3
oracle.security.client.username4
Trusted Certificates:
старый кошелек
# orapki wallet display -wallet .
Oracle PKI Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Oracle Secret Store entries:
oracle.security.client.connect_string1
oracle.security.client.connect_string2
oracle.security.client.connect_string3
oracle.security.client.connect_string4
oracle.security.client.password1
oracle.security.client.password2
oracle.security.client.password3
oracle.security.client.password4
oracle.security.client.username1
oracle.security.client.username2
oracle.security.client.username3
oracle.security.client.username4
Trusted Certificates:
Subject: OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject: OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject: OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject: OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US
Subject: CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
Хотя теперь очевидно, почему размер файла отличается, я до сих пор не понимаю, откуда взялась эта доверенная запись сертификата, поскольку я определенно не импортировал ее при создании кошелька (поскольку он также не упоминается в документации Oracle)
Теперь я не знаю, является ли это причиной того, что у приложения возникают проблемы с подключением к базе данных, но это единственное отличие, которое я могу заметить.
Итак, мой вопрос:
Я что-то пропустил? Есть ли какая-то проблема с версией? Я сгенерировал первый кошелек, используя утилиты 11g, и на этот раз это релиз 12c, но он должен работать - не так ли? Я попытался сгенерировать кошелек на Linux и Windows, в результате чего получился один и тот же кошелек.
Сообщение об ошибке говорит о том, что кошелек не открывается, и просит меня проверить пароль. К какому паролю он относится, я думал, что смысл этого кошелька в том, что пароль не должен быть настроен?
Я надеюсь, что кто-то может помочь мне здесь.