CF8 SSL-соединение с Postgres не удается - PullRequest
1 голос
/ 22 марта 2011

Я пытаюсь установить SSL-соединение между клиентом ColdFusion 8 Enterprise и сервером Redhat 5 Postgres.Другая сторона создала Postgres и отправила мне сертификаты.

  1. Я импортировал root.crt в E: \ JRun4 \ jre \ lib \ security \ cacerts успешно и перезапустил службу.
  2. Файл Postgres pg_hba.conf имеет IP-адрес клиента и прекрасно подключается без SSL
  3. Postgresql.conf имеет ssl = on
  4. Серверные сертификаты были созданы в соответствии с http://www.postgresql.org/docs/8.2/static/ssl-tcp.html и предположительно выполнены правильно.

При включенном SSL я получаю org.postgresql.util.PSQLException:Попытка подключения не удалась. , которая выдает небольшую полезную информацию из выполненных мной поисков.

URL JDBC: jdbc: postgresql: // xxxx / main? ssl = true
Класс: org.postgresql.Driver

Что можно сделать, чтобы увидеть / проверить, находится ли источник ошибки на моем конце или на стороне сервера?

Ответы [ 3 ]

2 голосов
/ 03 июня 2013

В случае проблем с сертификатом добавьте &sslfactory=org.postgresql.ssl.NonValidatingFactory в свой URL-адрес jdbc. См. https://jdbc.postgresql.org/documentation/91/ssl-client.html для получения дополнительной информации.

2 голосов
/ 20 марта 2013

Очевидные вопросы, с которых нужно начать при поиске и устранении неисправностей:

  1. Можно ли подключиться по протоколу SSL с помощью psql?

  2. Есть ли что-нибудь интересное в журналах postgresql?

  3. Если это не сработает, есть ли способ проверить сертификат на соответствие подписи пользователя root?

  4. Если это не удается, единственное, о чем я могу подумать, - это проследить на стороне клиента и точно определить, где в библиотеках SSL происходит сбой.

1 голос
/ 11 июня 2013

Я нашел заметки, которые я сделал для решения этой проблемы. Обратите внимание, что пути к дискам и папкам могут отличаться для вашей настройки.

  1. Скопируйте server.crt.der на целевой сервер
  2. Откройте командное окно на целевом сервере и перейдите в E: \ Jrun4 \ jre \ bin \
  3. Введите следующую команду: keytool -importcert -alias postgres -keystore e:\jrun4\jre\lib\security\cacerts -file c:\location\of\server.crt -storepass changeit
  4. Он подскажет вам, следует ли вам доверять этому сертификату; ответ да
  5. Чтобы убедиться, что он успешно установлен, введите: keytool -list -alias postgres -keystore e:\jrun4\jre\lib\security\cacerts -storepass changeit. В случае успеха вы увидите один листинг, возвращаемый этим псевдонимом, в противном случае будет указано, что ничего не найдено
  6. После сохранения сертификата вы можете удалить сам файл сертификата с сервера
  7. Перезапуск служб ColdFusion на клиентском компьютере
...