Secured routes

    You can configure a secure route using reencrypt TLS termination with a custom certificate by using the command.

    Prerequisites

    • You must have a certificate/key pair in PEM-encoded files, where the certificate is valid for the route host.

    • You may have a separate CA certificate in a PEM-encoded file that completes the certificate chain.

    • You must have a separate destination CA certificate in a PEM-encoded file.

    • You must have a service that you want to expose.

    Procedure

    This procedure creates a Route resource with a custom certificate and reencrypt TLS termination. The following assumes that the certificate/key pair are in the tls.crt and tls.key files in the current working directory. You must also specify a destination CA certificate to enable the Ingress Controller to trust the service’s certificate. You may also specify a CA certificate if needed to complete the certificate chain. Substitute the actual path names for tls.crt, tls.key, cacert.crt, and (optionally) ca.crt. Substitute the name of the Service resource that you want to expose for frontend. Substitute the appropriate hostname for www.example.com.

      1. $ oc create route reencrypt --service=frontend --cert=tls.crt --key=tls.key --dest-ca-cert=destca.crt --ca-cert=ca.crt --hostname=www.example.com

      If you examine the resulting Route resource, it should look similar to the following:

      YAML Definition of the Secure Route

      See oc create route reencrypt --help for more options.

    You can configure a secure route using edge TLS termination with a custom certificate by using the oc create route command. With an edge route, the Ingress Controller terminates TLS encryption before forwarding traffic to the destination pod. The route specifies the TLS certificate and key that the Ingress Controller uses for the route.

    Prerequisites

    • You must have a certificate/key pair in PEM-encoded files, where the certificate is valid for the route host.

    • You may have a separate CA certificate in a PEM-encoded file that completes the certificate chain.

    • You must have a service that you want to expose.

    Procedure

    • Create a secure Route resource using edge TLS termination and a custom certificate.

      If you examine the resulting Route resource, it should look similar to the following:

      YAML Definition of the Secure Route

      1. apiVersion: route.openshift.io/v1
      2. kind: Route
      3. metadata:
      4. spec:
      5. host: www.example.com
      6. to:
      7. kind: Service
      8. name: frontend
      9. tls:
      10. termination: edge
      11. key: |-
      12. -----BEGIN PRIVATE KEY-----
      13. [...]
      14. -----END PRIVATE KEY-----
      15. certificate: |-
      16. -----BEGIN CERTIFICATE-----
      17. [...]
      18. -----END CERTIFICATE-----
      19. caCertificate: |-
      20. -----BEGIN CERTIFICATE-----
      21. -----END CERTIFICATE-----

      See oc create route edge --help for more options.

    You can configure a secure route using passthrough termination by using the oc create route command. With passthrough termination, encrypted traffic is sent straight to the destination without the router providing TLS termination. Therefore no key or certificate is required on the route.

    Prerequisites

    • You must have a service that you want to expose.

    Procedure

    • Create a Route resource:

      If you examine the resulting Route resource, it should look similar to the following:

      A Secured Route Using Passthrough Termination

      1. apiVersion: route.openshift.io/v1
      2. kind: Route
      3. metadata:
      4. name: route-passthrough-secured (1)
      5. spec:
      6. host: www.example.com
      7. port:
      8. targetPort: 8080
      9. tls:
      10. termination: passthrough (2)
      11. insecureEdgeTerminationPolicy: None (3)
      12. to:
      13. kind: Service
      14. name: frontend