Нужно ли добавлять проверенный CA в VM TrustStore при установлении соединения из Java? - PullRequest
0 голосов
/ 14 марта 2012

Я звоню из одного приложения sayApp1 в другое приложение (скажем, App2), авторизованное проверенным CA, таким как Verisign или Thawte, например

String urlStr="https://myApp2/welcome"
HttpsURLConnection conn1 = (HttpsURLConnection) url.openConnection();
conn1.getInputStream()

Нужно ли мне импортировать этот сертификат, выданный App2, где-нибудь в Магазин доверенных сертификатов app1? Это тот случай, когда они находятся на разных серверах tomcat (так разные vm).

А как насчет того же сценария, если они находятся на одном сервере Tomcat (я имею в виду тот же VM)?

я знаю, что в случае браузера не требуется импортировать сертификат, подписанный CA, например, verisign, thawte и т. Д., Но что делать при подключении из Java?

Edit: -

Как вы сказали, это будет одинаково независимо от того, на каком сервере они установлены

Это означает, что когда-либо веб-сервер проверяет файл cacerts, который поставляется с Java 1.6.0_30. поэтому, если у клиента jvm есть эти сертификаты, нам не нужно ничего делать.

Эта проверка файла cacerts выполняется только тогда, когда мы устанавливаем соединение url из кода Java. В случае браузера он просто проверит браузер truststore.RIGHT?

Чтобы переместить мой сайт на https, я следовал ниже шага

C: \ Program Files \ Java \ jdk1.6.0_23> keytool -genkey -alias tomcat -keyalg RSA, сгенерировавший файл .keystore Наконец я внес изменения в server.xml, и он заработал keystoreFile = "c: /. Keystore" keystorePass = "changeit"

Пройдя слишком много материала в сети, я немного озадачен тем, какой подход я только что использовал (создал ли я свой собственный ЦС или я просто создал самозаверяющий сертификат, для которого требуется присутствовать на стороне клиента)?

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Это зависит.Файл cacerts, поставляемый с Java 1.6.0_30, содержит 76 записей.Если сертификат, используемый другим приложением, был проверен одним из поставщиков, использующих один из этих сертификатов, импорт не потребуется.Это будет то же самое независимо от сервера, на котором они установлены, если используется протокол HTTPS.Иногда поставщики имеют новые сертификаты, которые потребуют обновления до cacerts.Обычно это исправляется обновлениями JVM.Если открытый ключ сертификата, используемого для проверки другого приложения, отсутствует в cacerts, его необходимо будет импортировать для установления доверия.

1 голос
/ 16 марта 2012

Ваш вопрос действительно сбивает с толку (это самое малое, что я могу сказать).
Вы начинаете говорить, что вам нужно общение с приложением, которое развертывает сертификат, подписанный доверенным центром сертификации, таким как Verisign, и в итоге спрашиваете, какой сертификат генерирует keytool, который вы использовали в Tomcat!

В любом случае:

Нужно ли мне импортировать этот сертификат, выпущенный App2, где-нибудь в ВМ доверенное хранилище app1? Это тот случай, когда они на разных котят сервер (так разные вм). Как насчет того же сценария, если они включены тот же сервер Tomcat (я имею в виду тот же VM)?

Это не имеет значения. Если вы не определили для своего клиентского приложения определенное хранилище доверенных сертификатов, тогда будет использоваться java по умолчанию.

Если app2 отправляет сертификат, подписанный доверенным издателем, таким как Verisign, вам не нужно ничего делать (как указывает @laz). Поскольку сертификат Verisign уже должен присутствовать в вашей установке Java cacerts

Пройдя слишком много материала в сети, я немного запутался какой подход я только следовал (я создал свой собственный CA или я просто создал самозаверяющий сертификат, который должен присутствовать у клиента боковая сторона) ?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...