Как я могу обеспечить обычную связь сокетов? Я написал Jabber-клиент, который может подключаться только к выделенным портам SSL (5223) (используя SSLSocket). Обычным способом является подключение к стандартному порту 5222 Jabber и запрос starttls
. Как я могу это достичь?Как реализовать (SSL/TLS) безопасную связь через обычные Java-сокеты
ответ
Я не совсем уверен, что вы просите, но вы можете сложить защищенный сокет в существующем обычном (незащищенном) сокете с помощью метода SSLSocketFactory.createSocket(). Это один из способов «обновить» сокет, используя что-то вроде starttls. Но это все усложняет. Почти наверняка ваша библиотека XMPP обеспечит высокоуровневый доступ к этим функциям.
Хорошо. позвольте мне попробовать. Я пытаюсь закодировать свою собственную библиотеку. – Bijoy
@Bijoy: вы действительно говорите, что хотите реализовать свою собственную библиотеку SSL/TLS (хотя в JRE: JSSE есть один из них)? Это немного похоже на ваше название. Тем не менее, вы, вероятно, не спросили бы об этом, если бы это было то, что вы действительно хотели сделать, вы бы просто прошли через RFC (в данном случае, удачи ...). Если вы просто хотите написать свою собственную библиотеку XMPP и обновить обычный сокет TCP до сокета SSL/TLS, используйте предложение Gregs. – Bruno
А, Извините. Ошибка связи, я точно хочу создать собственную библиотеку XMPP, а не библиотеку SSL/TLS. – Bijoy
Управление ожиданиями: Я не пробовал это с Jabber. Но он работает с SMTP сервером GMAIL, так что, может быть ...
Вот как обновить сокет к SSL сокет, где socket
является оригинальным (не TLS) соединение:
SSLSocket sslSocket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(
socket,
socket.getInetAddress().getHostAddress(),
socket.getPort(),
true);
InputStream inputStream = sslSocket.getInputStream();
OutputStream outputStream = sslSocket.getOutputStream();
// reads from the socket
Scanner scanner = new Scanner(inputStream);
// writes to the socket
OutputStream outputStream = new BufferedOutputStream(outputStream);
- 1. Как реализовать безопасную связь между клиентом и сервером в WCF?
- 2. Как реализовать безопасную публикацию api
- 3. Реализовать безопасную связь с использованием RSA-шифрования в C#
- 4. Как установить безопасную связь с PHP?
- 5. Реализовать поточную безопасную функцию ctime
- 6. Как реализовать безопасную распределенную социальную сеть?
- 7. Hazelcast: Как создать безопасную связь в Open Source?
- 8. Как настроить безопасную одноранговую связь между двумя беспроводными устройствами linux?
- 9. Как обеспечить безопасную связь между двумя веб-сайтами
- 10. Как реализовать публикацию/подписку на связь через Интернет
- 11. iOS, создающая безопасную токенную связь между приложением и сервером
- 12. Как реализовать связь Bluetooth с Phonegap?
- 13. Как реализовать безопасную аутентификацию Master/Super Password в Devise?
- 14. UNITY: Как реализовать поточно-безопасную функцию Container.Resolve() с введением конструктора?
- 15. Как реализовать безопасную транзакцию, случайную последовательность в MySQL
- 16. Как реализовать поточную безопасную локальную статическую переменную в C++ 03?
- 17. Реализовать перекрестную связь домена
- 18. C++ Как реализовать межпроцессорную связь сокетов?
- 19. Как реализовать связь между идентификатором и службой?
- 20. Как создать безопасную соль?
- 21. Java ME, Как реализовать одноранговую связь?
- 22. Как правильно реализовать связь между Java-классами
- 23. Как реализовать связь между Thread и AsyncTask
- 24. Как реализовать связь между браузером и бэкэнд?
- 25. Как реализовать связь в Riak 2.0
- 26. Как я могу реализовать эту связь?
- 27. Как реализовать двунаправленную связь между двумя массивами?
- 28. Как реализовать сервер и мульти-клиентов «связь»?
- 29. Как реализовать определенную связь между двумя объектами?
- 30. Как сделать безопасную страницу входа через SSL HTTPS?
, что вы пробовали ? И не звучать глупо, но вы проверили, что это реализация сервера SSL на сервере, к которому вы пытаетесь подключиться. Я не использую jabber, поэтому не знаю. Если сервер не подключен к SSL для подключения, ваш клиент SSL будет пустой тратой времени! –
У Google есть порт 5223 на talk.google.com, но большинство из всех серверов предоставляют нам традиционный метод starttls. Я не знаю, как защитить связь после запроса включить TLS. – Bijoy
Создание SSL-сокета в java проверяет аналогично созданию стандартного Socket. Можете ли вы предоставить код вместе с сообщением об ошибке, которое вы получаете? –