123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?xml version='1.0' encoding='UTF-8'?>
- <?xml-stylesheet type="text/xsl" href="manpage.xsl"?>
- <refentry xml:id="mosquitto-tls" xmlns:xlink="http://www.w3.org/1999/xlink">
- <refmeta>
- <refentrytitle>mosquitto-tls</refentrytitle>
- <manvolnum>7</manvolnum>
- <refmiscinfo class="source">Mosquitto Project</refmiscinfo>
- <refmiscinfo class="manual">Conventions and miscellaneous</refmiscinfo>
- </refmeta>
- <refnamediv>
- <refname>mosquitto-tls</refname>
- <refpurpose>Configure SSL/TLS support for Mosquitto</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <para><command>mosquitto</command> provides SSL support for encrypted
- network connections and authentication. This manual describes how
- to create the files needed.</para>
- <note><para>It is important to use different certificate subject
- parameters for your CA, server and clients. If the certificates
- appear identical, even though generated separately, the
- broker/client will not be able to distinguish between them and
- you will experience difficult to diagnose errors.</para></note>
- </refsect1>
- <refsect1>
- <title>Generating certificates</title>
- <para>The sections below give the openssl commands that can be used to
- generate certificates, but without any context. The asciicast at
- <link
- xlink:href="https://asciinema.org/a/201826">https://asciinema.org/a/201826</link>
- gives a full run through of how to use those commands.</para>
- </refsect1>
- <refsect1>
- <title>Certificate Authority</title>
- <para>Generate a certificate authority certificate and key.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl req -new -x509 -days <duration> -extensions v3_ca -keyout ca.key -out ca.crt</para></listitem>
- </itemizedlist>
- </refsect1>
- <refsect1>
- <title>Server</title>
- <para>Generate a server key.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl genrsa -des3 -out server.key 2048</para></listitem>
- </itemizedlist>
- <para>Generate a server key without encryption.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl genrsa -out server.key 2048</para></listitem>
- </itemizedlist>
- <para>Generate a certificate signing request to send to the CA.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl req -out server.csr -key server.key -new</para></listitem>
- </itemizedlist>
- <note><para>When prompted for the CN (Common Name), please enter either your server (or broker) hostname or domain name.</para></note>
- <para>Send the CSR to the CA, or sign it with your CA key:</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days <duration></para></listitem>
- </itemizedlist>
- </refsect1>
- <refsect1>
- <title>Client</title>
- <para>Generate a client key.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl genrsa -des3 -out client.key 2048</para></listitem>
- </itemizedlist>
- <para>Generate a certificate signing request to send to the CA.</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl req -out client.csr -key client.key -new</para></listitem>
- </itemizedlist>
- <para>Send the CSR to the CA, or sign it with your CA key:</para>
- <itemizedlist mark="circle">
- <listitem><para>openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days <duration></para></listitem>
- </itemizedlist>
- </refsect1>
- <refsect1>
- <title>See Also</title>
- <simplelist type="inline">
- <member>
- <citerefentry>
- <refentrytitle><link xlink:href="mosquitto-8.html">mosquitto</link></refentrytitle>
- <manvolnum>8</manvolnum>
- </citerefentry>
- </member>
- <member>
- <citerefentry>
- <refentrytitle><link xlink:href="mosquitto-conf-5.html">mosquitto-conf</link></refentrytitle>
- <manvolnum>5</manvolnum>
- </citerefentry>
- </member>
- </simplelist>
- </refsect1>
- <refsect1>
- <title>Author</title>
- <para>Roger Light <email>roger@atchoo.org</email></para>
- </refsect1>
- </refentry>
|