123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # This file contains an example nginx HTTP server configuration which
- # enables reverse proxy service for Kea RESTful API. An access to
- # the service is protected by client's certificate verification
- # mechanism. Before using this configuration a server administrator
- # must generate server certificate and private key as well as
- # the certificate authority (CA). The clients' certificates must
- # be signed by the CA.
- #
- # Note that the steps provided below to generate and setup certificates
- # are provided as an example for testing purposes only. Always
- # consider best known security measures to protect your production
- # environment.
- #
- # The server certificate and key can be generated as follows:
- #
- # openssl genrsa -des3 -out kea-proxy.key 4096
- # openssl req -new -x509 -days 365 -key kea-proxy.key -out kea-proxy.crt
- #
- # The CA certificate and key can be generated as follows:
- #
- # openssl genrsa -des3 -out ca.key 4096
- # openssl req -new -x509 -days 365 -key ca.key -out ca.crt
- #
- #
- # The client certificate needs to be generated and signed:
- #
- # openssl genrsa -des3 -out kea-client.key 4096
- # openssl req -new -key kea-client.key -out kea-client.csr
- # openssl x509 -req -days 365 -in kea-client.csr -CA ca.crt \
- # -CAkey ca.key -set_serial 01 -out kea-client.crt
- #
- # Note that the 'common name' value used when generating the client
- # and the server certificates must differ from the value used
- # for the CA certificate.
- #
- # The client certificate must be deployed on the client system.
- # In order to test the proxy configuration with 'curl' run
- # command similar to the following:
- #
- # curl -k --key kea-client.key --cert kea-client.crt -X POST \
- # -H Content-Type:application/json -d '{ "command": "list-commands" }' \
- # https://kea.example.org/kea
- #
- #
- #
- # nginx configuration starts here.
- events {
- }
- http {
- # HTTPS server
- server {
- # Use default HTTPS port.
- listen 443 ssl;
- # Set server name.
- server_name kea.example.org;
- # Server certificate and key.
- ssl_certificate /path/to/kea-proxy.crt;
- ssl_certificate_key /path/to/kea-proxy.key;
- # Certificate Authority. Client certificate must be signed by the CA.
- ssl_client_certificate /path/to/ca.crt;
- # Enable verification of the client certificate.
- ssl_verify_client on;
- # For URLs such as https://kea.example.org/kea, forward the
- # requests to http://127.0.0.1:8080.
- location /kea {
- proxy_pass http://127.0.0.1:8080;
- }
- }
- }
|