Client-Core SSL support » History » Version 10

Sputnick, 04/08/2014 10:56 PM

1 1 seezer
h1. Client-Core SSL support
2 1 seezer
3 2 seezer
If you wish to setup an SSL connection between the core and client, you must have compiled both with the "-DWITH_OPENSSL=ON" cmake option.
4 2 seezer
In case you use a binary version, verify that it was built with SSL support.
5 6 avih
* The *Windows* binary distribution supports SSL out of the box. See Windows notes at the bottom.
6 1 seezer
7 2 seezer
You don't know where to look for whether SSL support is available in your core?
8 2 seezer
9 5 javier
>Start your core once and look out for warnings in /var/log/quassel/quasselcore like:
10 2 seezer
<pre>Warning: SslServer: Certificate file /home/quassel/.config/ does not exist
11 2 seezer
Warning: SslServer: Unable to set certificate file
12 2 seezer
Quassel Core will still work, but cannot provide SSL for client connections.</pre>
13 2 seezer
14 2 seezer
Then you need to generate a certificate file to be used for the connections.
15 2 seezer
As the user that starts quassel-core, issue something like the following command on the server running the core:
16 2 seezer
17 4 johu
*>=Version 0.4*
18 2 seezer
<pre>openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout ~/.config/ -out ~/.config/</pre>
19 1 seezer
>You might use a different configuration directory. Check if your core gets started with the --configdir command-line option.
20 1 seezer
21 1 seezer
Note that Kubuntu packages for Jaunty (9.04) and later do this step for you.
22 1 seezer
23 1 seezer
Start the core and select SSL in your Client as shown below:
24 3 seezer
25 3 seezer
26 6 avih
27 6 avih
h2. Creating a certificate on Windows:
28 6 avih
29 7 avih
# Download "Open SSL for Windows": . I used the *Win32 OpenSSL v1.0.1c Light* version, but other/later versions will work too as long as your system supports them. Don't forget to also download the relevant Visual C++ redist from that page and install it first. When installing OpenSSL, I chose to *install the OpenSSL DLLs to the OpenSSL directory* (not to windows directory), but it SHOULD work either way.
30 6 avih
# Open a command prompt, navigate to the openssl bin directory (typically @cd c:\openssl-win32\bin@), then issue the following command:
31 6 avih
32 10 Sputnick
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout %APPDATA%/ -out %APPDATA%/ -config openssl.cfg 
33 8 avih
</pre>(Note that the only difference from the *nix command is the target directory for the cert (typically results in @C:\Users\<USERNAME>\AppData\Roaming\ and the config file for OpenSSL which uses the sample config at the OpenSSL bin directory (openssl.cfg). If you installed the OpenSSL DLLs to the windows directory, your sample config file might be there.)
34 9 ChrisH
If you still get errors. Try removing <code>%APPDATA%/</code> from the paths. After the file has generated (into @c:\openssl-win32\bin@), manually move it to the proper location in @%APPDATA%/
35 8 avih
# Fill in the details for the certificate generation (pressing enter for all will also work), and now core should have its certificate ready for encrypted communication with the clients.