Enable non-SNI and HTTP clients

Version 1.7 (unsupported)keyboard_arrow_down

This topic explains how to enable non-SNI clients, HTTP clients, and a combination of both for use with Apigee hybrid.

How to configure a non-SNI client

This section explains how to enable support for non-SNI (Server Name Indication) clients in Apigee hybrid. A non-SNI client uses port 443 and is required if you want to integrate hybrid runtime instances with Google Cloud Load Balancing or for clients that do not support SNI.
  1. Create an ApigeeRoute custom resource definition (CRD). Be sure that enableNonSniClient is set to true:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Where:

  2. Open your overrides file and make the change described in the next step.
  3. For each environment group, add the ApigeeRoute name to the additionalGateways property. For example:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Save the CRD file. For example: ApigeeRoute.yaml
  5. Apply the CRD to the cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Apply the change to virtualhosts:
    $APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT

Usage notes

Enable HTTP clients

This section explains support for HTTP clients for use with Apigee hybrid.

  1. Create an ApigeeRoute custom resource definition (CRD). For example:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Where:

  2. Open your overrides file and make the change described in the next step.
  3. For each environment group, add the ApigeeRoute name to the additionalGateways property. For example:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Save the CRD file. For example: ApigeeRoute.yaml
  5. Apply the CRD to the cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Apply the change to virtualhosts:
    $APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT

Enable support for both non-SNI and HTTP clients

This section explains how to enable both non-SNI (port 443) and HTTP (port 80) clients for use with Apigee hybrid.

  1. Create an ApigeeRoute custom resource definition (CRD). For example:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Where:

  2. Open your overrides file and make the change described in the next step.
  3. For each environment group, add the ApigeeRoute name to the additionalGateways property. For example:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Save the CRD file. For example: ApigeeRoute.yaml
  5. Apply the CRD to the cluster:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Apply the change to virtualhosts:
    $APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT