¿Cómo puedo usar un certificado de cliente emitido por un tercero al configurar la autenticación TLS mutua para las API de API Gateway?

5 minutos de lectura
0

Quiero utilizar un certificado de cliente emitido por un tercero al configurar la autenticación mutua de seguridad de la capa de transporte (TLS) para las API de Amazon API Gateway.

Resolución

Para usar un certificado de cliente firmado por un tercero para API Gateway con autenticación TLS, siga estos pasos:

  1. Cree un almacén de confianza para usar el certificado firmado por terceros.
  2. Cree un nombre de dominio personalizado y un mapeo de API para su API de API Gateway.
  3. Cree un registro DNS para asignar el nombre de dominio personalizado a API Gateway.
  4. Inhabilite el punto de conexión predeterminado.
  5. Pruebe la API

Nota:

Crear un almacén de confianza para usar el certificado firmado por terceros.

1.    Genere un RootCA. El RootCA se utiliza para emitir el certificado de cliente.

openssl genrsa -out RootCA.key 4096

openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem

2.    Complete los campos obligatorios y escriba el nombre de dominio.

3.    Cree una clave privada de certificado de cliente, una solicitud de firma de certificado (CSR) y un certificado de cliente.

openssl genrsa -out my_client.key 2048

openssl req -new -key my_client.key -out my_client.csr

4.    Firme el certificado de cliente con la CA que creó anteriormente.

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.    Cree un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar el archivo truststore.pem.

6.    Cargue el archivo RootCA.pem al almacén de confianza del bucket de Amazon S3.

7.   (Opcional) Cree un archivo de cadena de certificados desde el certificado de CA intermedio hasta el CA raíz.

Cat Intermediate.pem ca.pem >ca-chain.pem.

Para obtener más información, consulte Configuración del almacén de confianza.

Cree un nombre de dominio personalizado y un mapeo de API para su API de API Gateway

Nota: Solo los certificados con un tamaño de clave de 2048 bits son visibles con API Gateway. El tamaño del certificado no puede superar los 2048 bits.

1.   Abra la consola de API Gateway y, a continuación, elija Custom domain names (Nombres de dominios personalizados).

2.   En Domain names (Nombres de dominio), escriba su nombre de dominio y, a continuación, seleccione Create (Crear).

3.   En Domain name (Nombre de dominio), escriba su nombre de dominio.

4.   En Minimum TLS version (Versión mínima de TLS), elija TLS 1.2.

5.   Habilite la Mutual TLS authentication (Autenticación mediante TLS mutua).

6.   En Truststore URI (URI del almacén de confianza), escriba el URI de Amazon S3 que creó anteriormente.

7.   En Endpoint configuration (Configuración de punto de conexión), seleccione Regional.

8.   En Certificate type (Tipo de certificado), elija el tipo de certificado y, a continuación, elija Create domain name (Crear nombre de dominio).

9.   Elija su nombre de dominio personalizado y, a continuación, seleccione Configure API mappings (Configurar mapeos de API).

  1. Seleccione Add new mapping (Agregar nuevo mapeo).

  2. Seleccione API, Stage (Etapa) y Path (Ruta) para el mapeo y, a continuación, seleccione Save (Guardar).

Si desea obtener más información, consulte How can I set up a custom domain name for my API Gateway API? (¿Cómo puedo configurar un nombre de dominio personalizado para mi API de API Gateway?).

Cree un registro DNS para asignar el nombre de dominio personalizado a la API Gateway

Cree un registro DNS para dirigir el nombre de dominio personalizado al nombre de dominio regional de la API Gateway. Esto permite que el tráfico vinculado al nombre de dominio personalizado se dirija al nombre de host regional de la API. El registro de DNS puede ser del tipo CNAME o “Alias A”.

Para obtener más información, consulte Configuración de Route 53 para dirigir el tráfico a un punto de conexión de interfaz de API Gateway.

Deshabilite el punto de conexión predeterminado

De forma predeterminada, los clientes pueden invocar las API mediante el punto de conexión execute-api que API Gateway genere para su API. Desactive el punto de conexión execute-api predeterminado para que los clientes puedan acceder a su API solo con un nombre de dominio personalizado.

Para las API HTTP, consulte Desactivación del punto de conexión predeterminado para una API HTTP.

Para las API de REST, consulte Desactivación del punto de conexión predeterminado para una API de REST.

Prueba de la API

Pruebe la API con los parámetros --key y --cert para enviar el certificado de cliente como parte de la solicitud.

$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem

Nota: La clave privada my_client.key y el certificado de cliente my_client.pem deben incluirse para que la solicitud se realice correctamente.


Información relacionada

¿Cómo puedo solucionar problemas relacionados con la cadena de certificados y los certificados autofirmados de Amazon API Gateway con los dominios personalizados y la TLS mutua habilitados?

Primeros pasos en la autenticación TLS mutua para Amazon API Gateway

¿Cómo soluciono los errores HTTP 403 Forbidden de un nombre de dominio personalizado de API Gateway que requiere una TLS mutua?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 meses