¿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?
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:
- Cree un almacén de confianza para usar el certificado firmado por terceros.
- Cree un nombre de dominio personalizado y un mapeo de API para su API de API Gateway.
- Cree un registro DNS para asignar el nombre de dominio personalizado a API Gateway.
- Inhabilite el punto de conexión predeterminado.
- Pruebe la API
Nota:
- Si se producen errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de que utiliza la versión más reciente de la AWS CLI.
- La TLS mutua no es compatible con las API privadas.
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).
-
Seleccione Add new mapping (Agregar nuevo mapeo).
-
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
Primeros pasos en la autenticación TLS mutua para Amazon API Gateway

Contenido relevante
- OFICIAL DE AWSActualizada hace 3 meses
- OFICIAL DE AWSActualizada hace 2 meses