Book Image

Practical XMPP

By : Steven Watkin, David Koelle
Book Image

Practical XMPP

By: Steven Watkin, David Koelle

Overview of this book

XMPP (eXtensible Messaging and Presence Protocol) is a messaging protocol that enables communication between two or more devices via the Internet. With this book, developers will learn about the fundamentals of XMPP, be able to work with the core functionality both server-side and in the browser, as well as starting to explore several of the protocol extensions. You will not only have a solid grasp of XMPP and how it works, but will also be able to use the protocol to build real-world applications that utilize the power of XMPP. By the end of this book, you will know more about networking applications in general, and have a good understanding of how to extend XMPP, as well as using it in sample applications.
Table of Contents (16 chapters)
Practical XMPP
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Free Chapter
1
An Introduction to XMPP and Installing Our First Server

XMPP security


If you are deploying your XMPP server for the world to access, you will want to make sure it is secure! Out of the box, many XMPP servers including Prosody, provide security mechanisms that are easy to set up.

First, let's talk about server certificates. This will be a quick discussion. If you want a secure server, you need to get a server certificate! You can get a certificate from any certificate authority. Recommended authorities are LetsEncrypt (https://letsencrypt.org) and StartSSL (http://www.startssl.com), which offer free certificates. In order to use SSL with Prosody you’ll need to edit the prosody.cfg.lua file and add the following configuration (pointing to your certificate files):

ssl = {
  key = "/path/to/prosody.key";
  certificate = "/path/to/prosody.crt";
 } 

Next, let's talk about encryption. You should ensure that the communication from client to server, and vice versa, is encrypted rather than kept as readable text. All XMPP servers support encryption...