Skip to content

Commit 1f77ee2

Browse files
author
Matthew Fisher
committed
Merge pull request #1184 from deis/ssl-docs
docs(installing) add section on installing SSL
2 parents 1f49bc9 + a620cf0 commit 1f77ee2

5 files changed

Lines changed: 79 additions & 4 deletions

File tree

docs/installing_deis/configure-load-balancers.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ These ports need to be open on the load balancers:
2121
* 80 (for application traffic and for API calls to the controller)
2222
* 2222 (for traffic to the builder)
2323

24-
Optionally, you can also open port 443 and configure SSL termination on the load balancers, but
25-
requests should still be forwarded to port 80 on the routers. Communication between Deis components
26-
is currently unencrypted.
24+
If you want to configure SSL termination on your load balancer, see :ref:`ssl-endpoints`.
2725

2826
A health check should be configured on the load balancer to send an HTTP request to /health-check at
2927
port 80 on all nodes in the Deis cluster. The health check endpoint returns an HTTP 200. This enables

docs/installing_deis/create-cluster.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
.. _create_cluster:
55

66
Create a Cluster
7-
======================
7+
================
88

99
Applications on Deis are deployed to a :ref:`cluster`. Before you can deploy
1010
applications, you need to create a cluster.

docs/installing_deis/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ Installing Deis
1717
create-cluster
1818
configure-load-balancers
1919
configure-dns
20+
ssl-endpoints
2021
upgrading-deis

docs/installing_deis/provision-controller.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
Provision a Controller
88
======================
9+
910
The `controller` is the brains of a Deis platform. Provisioning a Deis
1011
controller is a matter of creating one or more :ref:`concepts_coreos`
1112
machines and installing a few necessary *systemd* units to manage
@@ -18,6 +19,7 @@ with CoreOS.
1819

1920
Amazon EC2
2021
----------
22+
2123
The `contrib/ec2` section of the Deis project includes shell scripts,
2224
documentation, and a customized CloudFormation template to make it easy
2325
to provision a multi-node Deis cluster on `Amazon EC2`_.
@@ -26,6 +28,7 @@ Please see `contrib/ec2`_ for details on using Deis on Amazon EC2.
2628

2729
Rackspace
2830
---------
31+
2932
The `contrib/rackspace` section of the Deis project includes shell
3033
scripts, documentation, and a cloud-config template to make it easy to
3134
provision a multi-node Deis cluster on Rackspace_ cloud.
@@ -35,13 +38,15 @@ Rackspace cloud.
3538

3639
Bare Metal
3740
----------
41+
3842
The `contrib/bare-metal` section of the Deis project includes documentation in
3943
README.md to help with provisioning a multi-node cluster on your own hardware.
4044

4145
Please see `contrib/bare-metal`_ for details on using Deis on bare metal.
4246

4347
Vagrant
4448
-------
49+
4550
The root of the Deis project includes documentation in README.md, a
4651
Makefile and a Vagrantfile to make it easy to provision a single- or
4752
multi-node Deis cluster on Vagrant_ virtual machines.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
:title: SSL Endpoints
2+
:description: Configure SSL termination for your Deis cluster
3+
4+
5+
.. _ssl-endpoints:
6+
7+
SSL Endpoints
8+
=============
9+
10+
SSL (Secure Sockets Layer) is the standard security technology for establishing an encrypted link
11+
between a web server and a browser. This link ensures that all data passed between the web server
12+
and browsers remain private and integral.
13+
14+
To enable SSL for your cluster and all apps running upon it, you can add an SSL key to your load
15+
balancer. You must either provide an SSL certificate that was registered with a CA or provide your
16+
own self-signed SSL certificate.
17+
18+
19+
Generating an SSL Certificate
20+
-----------------------------
21+
22+
To generate your own self-signed SSL certificate for testing purposes, you can run the following:
23+
24+
.. code-block:: console
25+
26+
$ openssl genrsa -out server.key 2048
27+
$ openssl req -new -key server.key -out server.csr
28+
29+
This will create a private key and a Certificate Signing Request. This CSR is typically sent to a
30+
CA such as Verisign, but in this example we will be using it to sign our own SSL certificate.
31+
32+
Though most fields are self-explanatory, pay close attention to the following:
33+
34+
+--------------+-------------------------------------------------------------------------+
35+
| Field | Description |
36+
+==============+=========================================================================+
37+
| Country Name | The two letter code, in ISO 3166-1 format, of the country in which your |
38+
| | organization is based. |
39+
+--------------+-------------------------------------------------------------------------+
40+
| Common Name | This is the fully qualified domain name that you wish to secure. In |
41+
| | most cases, this will be a wildcard subdomain. |
42+
+--------------+-------------------------------------------------------------------------+
43+
44+
To generate a temporary certificate which is good for 365 days, issue the following command:
45+
46+
.. code-block:: console
47+
48+
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
49+
50+
.. note::
51+
52+
Some SSL vendors like RapidSSL will secure both the root domain and the www subdomain if you
53+
set the Common Name to www.example.com
54+
55+
See your vendor's documentation for more information.
56+
57+
58+
Installing the SSL Certificate
59+
------------------------------
60+
61+
On most cloud-based load balancers, you can install a SSL certificate onto the load balancer
62+
itself. This is the recommended way of enabling SSL onto a cluster, as any communication inbound to
63+
the cluster will be encrypted while the internal components of Deis will still communicate over
64+
HTTP. To enable SSL, you will need to open port 443 on the load balancer and forward it to port 80
65+
on the routers. See your vendor's specific instructions on installing SSL on your load balancer.
66+
67+
For EC2, see their documentation on `installing an SSL cert for load balancing`_. For
68+
Rackspace, see their `Product FAQ`_.
69+
70+
.. _`installing an SSL cert for load balancing`: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html
71+
.. _`Product FAQ`: http://www.rackspace.com/knowledge_center/product-faq/cloud-load-balancers

0 commit comments

Comments
 (0)