summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDolph Mathews <dolph.mathews@gmail.com>2011-11-30 10:18:57 -0600
committerDolph Mathews <dolph.mathews@gmail.com>2011-11-30 11:30:44 -0600
commita461eda42f1344e1aa4019986b56e72f2ab4f9fd (patch)
tree401fdb1a0fa6f8d45748d37942867683d4e473ce
parent1778dcf00668b3e1a48f21a3919c39a91a436b5c (diff)
downloadkeystone-a461eda42f1344e1aa4019986b56e72f2ab4f9fd.tar.gz
keystone-a461eda42f1344e1aa4019986b56e72f2ab4f9fd.tar.xz
keystone-a461eda42f1344e1aa4019986b56e72f2ab4f9fd.zip
Added ssl docs to index; fixed rst syntax (bug 898211)
Change-Id: I21a810254c4985faad8c43b064f7cf10b3c4b4b2
-rw-r--r--doc/source/index.rst1
-rw-r--r--doc/source/ssl.rst127
2 files changed, 79 insertions, 49 deletions
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 50e01c00..c338e57a 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -60,6 +60,7 @@ Administration
controllingservers
configuringservices
endpoints
+ ssl
API Use Case Examples
diff --git a/doc/source/ssl.rst b/doc/source/ssl.rst
index 67190da5..839e951e 100644
--- a/doc/source/ssl.rst
+++ b/doc/source/ssl.rst
@@ -14,76 +14,105 @@
License for the specific language governing permissions and limitations
under the License.
-=====================================================
-Instructions for Keystone x.509 client authentication
-=====================================================
-
-.. toctree::
- :maxdepth: 1
+===========================
+x.509 Client Authentication
+===========================
Purpose
--------
-Allows the Keystone middleware to authenticate itself with the Keystone server
-via an x.509 client certificate. Both Service API and Admin API may be secured
+=======
+
+Allows the Keystone middleware to authenticate itself with the Keystone server
+via an x.509 client certificate. Both Service API and Admin API may be secured
with this feature.
Certificates
-------------
+============
+
The following types of certificates are required. A set of certficates is provided
in the examples/ssl directory with the Keystone distribution for testing. Here
is the description of each of them and their purpose:
-1. ca.pem : Certificate Authority chain to validate against.
-2. keystone.pem : Public certificate for Keystone server.
-3. middleware-key.pem: Public and private certificate for Keystone middleware.
-4. cakey.pem : Private key for the CA.
-5. keystonekey.pem : Private key for the Keystone server.
+ca.pem
+ Certificate Authority chain to validate against.
+
+keystone.pem
+ Public certificate for Keystone server.
+
+middleware-key.pem
+ Public and private certificate for Keystone middleware.
+
+cakey.pem
+ Private key for the CA.
+
+keystonekey.pem
+ Private key for the Keystone server.
Note that you may choose whatever names you want for these certificates, or combine
-the public/private keys in the same file if you wish. These certificates are just
+the public/private keys in the same file if you wish. These certificates are just
provided as an example.
-Keystone server
----------------
-By default, the Keystone server does not use SSL. To enable SSL with client authentication,
+Configuration
+=============
+
+By default, the Keystone server does not use SSL. To enable SSL with client authentication,
modify the etc/keystone.conf file accordingly:
-1. To enable SSL for Service API:
- service_ssl = True
-2. To enable SSL for Admin API:
- admin_ssl = True
-3. To enable SSL client authentication:
- cert_required = True
-4. Set the location of the Keystone certificate file (example):
- certfile = /etc/keystone/ca/certs/keystone.pem
-5. Set the location of the Keystone private file (example):
- keyfile = /etc/keystone/ca/private/keystonekey.pem
-6. Set the location of the CA chain:
- ca_certs = /etc/keystone/ca/certs/ca.pem
+1. To enable SSL for Service API::
+
+ service_ssl = True
+
+2. To enable SSL for Admin API::
+
+ admin_ssl = True
+
+3. To enable SSL client authentication::
+
+ cert_required = True
+
+4. Set the location of the Keystone certificate file (example)::
+
+ certfile = /etc/keystone/ca/certs/keystone.pem
+
+5. Set the location of the Keystone private file (example)::
+
+ keyfile = /etc/keystone/ca/private/keystonekey.pem
+
+6. Set the location of the CA chain::
+
+ ca_certs = /etc/keystone/ca/certs/ca.pem
Middleware
-----------
-Add the following to your middleware configuration to support x.509 client authentication.
-If cert_required is set to False on the keystone server, the certfile and keyfile parameters
+==========
+
+Add the following to your middleware configuration to support x.509 client authentication.
+If ``cert_required`` is set to ``False`` on the keystone server, the certfile and keyfile parameters
in steps 3) and 4) may be commented out.
-1. Specify 'https' as the auth_protocol:
- auth_protocol = https
+1. Specify 'https' as the auth_protocol::
+
+ auth_protocol = https
+
2. Modify the protocol in 'auth_uri' to be 'https' as well, if the service API is configured
- for SSL:
- auth_uri = https://localhost:5000/
-3. Set the location of the middleware certificate file (example):
- certfile = /etc/keystone/ca/certs/middleware-key.pem
-4. Set the location of the Keystone private file (example):
- keyfile = /etc/keystone/ca/certs/middleware-key.pem
-
-For an example, take a look at the 'echo.ini' middleware configuration for the 'echo' example
+ for SSL::
+
+ auth_uri = https://localhost:5000/
+
+3. Set the location of the middleware certificate file (example)::
+
+ certfile = /etc/keystone/ca/certs/middleware-key.pem
+
+4. Set the location of the Keystone private file (example)::
+
+ keyfile = /etc/keystone/ca/certs/middleware-key.pem
+
+For an example, take a look at the ``echo.ini`` middleware configuration for the 'echo' example
service in the examples/echo directory.
Testing
--------
-You can test out how it works by using the 'echo' example service in the examples/echo directory
-and the certficates included in the examples/ssl directory. Invoke the echo_client.py with
-the path to the client certificate:
+=======
+
+You can test out how it works by using the ``echo`` example service in the ``examples/echo`` directory
+and the certficates included in the ``examples/ssl`` directory. Invoke the ``echo_client.py`` with
+the path to the client certificate::
- python echo_client.py -s <path to client certificate>
+ python echo_client.py -s <path to client certificate>